我们已经定制了jQuery的自动完成功能,在change
事件处理程序中,我们需要访问输入来调用我们添加的函数。 ui
参数是所选项目,但如果用户输入了一些随机文本,则不会选择任何项目,ui.item
为空。所以我不能在ui.item
上使用遍历DOM基础。
简而言之,我们(实际上是这个项目的人)做的是修改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
,但不能完全指责它。
答案 0 :(得分:0)
很抱歉自己这么快回答,但是在继续环顾四周之后我找到了答案。我从来不知道如何恰当地说出这一点。
我在这里找到答案:JQuery - Widget Public Methods
就我而言,我可以这样做:
self.input.autocomplete('ourCustomMethod');
这显然是在DOM元素上调用widget方法的方法,我不知道。