0

我们稍微定制了 jQuery 的自动完成功能,在change事件处理程序中,我们需要访问输入来调用我们添加的函数。参数是被选中的ui项目,但是如果用户输入了一些随机的文本,则不会选中任何项目并且ui.item为空。所以我不能使用遍历 DOM 基于ui.item.

简而言之,我们(实际上是这个项目的过去的某个人)所做的就是修改 jquery ui 文件:

$.widget( "ui.autocomplete", {
    // original code here
    ourCustomMethod: function() {}
});

现在我们已经构建了一个组合框,我们在其中做(简化):

var self = this;
var input = this.input = $("<input>")
    .autocomplete({
        change: function(event, ui) {
            if (!ui.item) {
                // I want to call the ourCustomMethod here
                // I can't use the parents of ui.item because it's null
            }
        }
    });

那么我怎样才能访问ourCustomMethod?我猜到了,self.input但不能完全把我的手指放在它上面。

4

1 回答 1

0

很抱歉自己这么快就回答了这个问题,但我继续环顾四周后找到了答案。我真的不知道如何正确地用这个词。

我在这里找到了答案:JQuery - Widget Public Methods

就我而言,我可以这样做:

self.input.autocomplete('ourCustomMethod');

这显然是在 DOM 元素上调用小部件方法的方式,我不知道。

于 2013-10-21T07:47:37.120 回答