【发布时间】:2010-03-16 16:07:18
【问题描述】:
jQuery UI 1.8rc3 中的新自动完成小部件在 Firefox 中运行良好。它在 IE 中根本不起作用。有人可以帮帮我吗?
HTML:
<input type="text" id="ctrSearch" size="30">
<input type="hidden" id="ctrId">
Javascript:
$("#ctrSearch").autocomplete({
source: "ctrSearch.do",
minLength: 3,
focus: function(event, ui){
$('#ctrSearch').val(ui.item.ctrLastName + ", " + ui.item.ctrFirstName);
return false;
},
select: function(event, ui){
$('#ctrId').val(ui.item.ctrId);
return false;
}
});
结果(IE 8):
红色框是jQuery创建的<ul>元素。
我也收到此错误:
线路:116 错误:参数无效。
当我在 IE8 脚本调试器中打开它时,它会在 jquery.min.js 的第 116 行突出显示 f[b]=d。请注意,我使用的是托管在 Google 服务器 (https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js) 上的 1.4.2 版 jQuery。
我已经尝试删除一些选项,但即使我在没有选项或只有源选项的情况下调用 .autocomplete(),我仍然得到相同的结果。
再一次,它可以在 Firefox 中运行,但不能在 IE 中运行。有什么建议吗?
谢谢。
更新:按照建议,我使用 jquery.js(而不是 jquery.min.js)并在第 4618 行得到错误。请参阅下面的 jitter 答案。请参阅前几天发布的this other Stack Overflow question。
更新 2: 我发现 jQuery UI 自动完成使用了无效的属性 this.element.height,而它应该使用函数 this.element.height()
【问题讨论】:
-
彼得。不要使用缩小版的 jQuery 进行调试。如果您换成 jQuery.js,则可能有比“f[b]=d on line 116 of jquery.min.js”更多的信息。
-
spender 是对的。在开发时换掉缩小版本与完整的 jQuery ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js 以获得更好的调试信息
-
如果我有时间我可能会在明天研究一下。目前没有可用的 IE8
-
感谢抖动。期待您的意见。
标签: javascript jquery jquery-ui jquery-ui-autocomplete