【发布时间】:2011-04-27 19:02:14
【问题描述】:
我正在构建一个自定义的自动完成小部件,我需要在其中覆盖默认的“选择”行为并让它在任何外部附加的事件处理程序之前运行。
$("#input").autocomplete({
source: ['A','B','C'],
select: function() {
console.log("from config.select");
}
});
$("#input").bind("autocompleteselect", function(event, ui) {
console.log("from bind()");
});
当我从生成的自动完成中选择一个元素时,以下内容会打印到我的控制台:
from bind()
from config.select
我的问题是,为什么?这背后有什么理由吗?在我看来,在给自动完成()“构造函数”的设置/配置对象中配置的事件处理程序应该首先发生,绑定()附加的处理程序应该在之后发生。
我意识到我可以在我的插件中使用 bind() 来确保我的事件处理程序是第一个运行的,但是它给代码添加了一些混乱。
【问题讨论】:
-
“为什么”这样可能只有 jQueryUI 团队成员才能回答...
标签: jquery events jquery-ui autocomplete jquery-ui-autocomplete