代码之家  ›  专栏  ›  技术社区  ›  The Matt

如何引用页面上的jquery ui小部件并调用其上的函数?

  •  3
  • The Matt  · 技术社区  · 15 年前

    我用的是 ui-multiselect 用于呈现的小部件 <select> 列出不同的。

    我试图引用一个新的函数,这个函数是我添加到小部件中的,但是它没有找到引用。

    我的新样式列表在页面上使用以下HTML呈现良好:

    <select class="multiselect" id="MySelect" multiple="multiple" name="MySelect">
    <option value="1">option1</option>
    <option value="2">option2</option>
    <option value="3">option3</option>
    <option value="4">option4</option>
    </select>
    

    然后我在小部件的代码中添加了一个函数:

    ...
        destroy: function() {
            this.element.show();
            this.container.remove();
    
            $.widget.prototype.destroy.apply(this, arguments);
        },
        myNewFunction: function() {
            alert('hello world');
        },
        _populateLists: function(options) {
            this.selectedList.children('.ui-element').remove();
    ...
    

    在我的javascript代码中,我想调用这个函数,但是我似乎无法获得正确的引用。以下是我的尝试:

    $('#MySelect').myNewFunction();
    

    它在返回的对象上找不到该函数。

    2 回复  |  直到 15 年前
        1
  •  4
  •   Justin Johnson    15 年前

    尝试 $('#MySelect').multiselect('myNewFunction') .

    $('#MySelect') 只提供dom元素。 $('#MySelect').multiselect() 应该给你控件。

    (我还没有使用jquery ui,但这似乎是来自其他问题的习语,以及我所看到的一些文档)。

        2
  •  1
  •   Jeremy B.    15 年前

    您需要使用jquery扩展方法,以便jquery将该方法作为一个可行的扩展,如下所示。

    $.multiselect.fn.extend({
        myNewFunction()
    });
    

    您需要扩展多重选择。

    开始 here 获取更多信息