我正在使用jquery 1.4.4和jquery-ui 1.8.24。我有一个对话框,在该对话框中有一个链接。点击该链接后,我向用户显示一个带有自动填充功能的输入。当用户从自动完成列表中选择一个项目并点击输入键时,一切正常。不幸的是,当用户手动点击自动完成列表中的项目时,事件“选择”根本不会被调用,对话框会立即关闭。
另外,我正在使用很多live()和die()来防止将多个事件绑定到我的DOM元素。
$j("#" + id + "_selector:not(.ui-autocomplete-input)").die().live("focus", function (event) {
$j(this).autocomplete({
autoFocus:true,
html:true,
create:function() {
// this always invokes
console.log('autocomplete created');
},
source:function (request, response) {
var term = request.term;
if (term in cache) {
response(cache[term]);
return;
}
request.kind = settings.kind
request.no_email_display = settings.no_email_display
lastXhr = $j.getJSON(Routes.search_account_path().url, request, function (data, status, xhr) {
cache[ term ] = data;
if (xhr === lastXhr) {
response(data);
}
});
return false;
},
select: function(event, ui) {
// this one works only after selecting by keyboard and hitting entery key
var origEvent = event;
while (origEvent.originalEvent !== undefined)
origEvent = origEvent.originalEvent;
console.log(origEvent);
},
});
});
我怀疑的是对话以某种方式从我的自动完成中接管点击事件。
如果有人能帮助我如何至少调试这个错误(工具?如何设置firebug,断点等?),我会很高兴,因为我意识到这个bug几乎不可能重现。