我在IE7或IE8中使用jquery.ui.autocomplete 1.8 rc2时遇到以下问题(在jquery.ui.autocomplete.css中):
.ui-menu {
list-style:none;
padding: 2px;
margin: 0;display:block;
height:200px;
overflow:scroll;
}
我正在使用名为demos\autocomplete\remote-jsonp.html
它与firefox完美配合,但是使用IE7或8,每次单击滚动条查看列表末尾时,它都会选择一个元素而不是向下滚动。
请您使用jquery.ui.autocomplete
并使用与IE一起使用的滚动条来获得固定高度的解决方案吗?
答案 0 :(得分:1)
当滚动条用于自动完成时,我遇到了同样的问题。 当我/用户使用滚动条按钮时 - 自动隐藏自动完成列表。 仅供参考:测试在FF3.5
所以我评论的快速解决方案
bind("blur.autocomplete", function( event ) ... in jquery.ui.autocomplete.js
这解决了这个问题。
答案 1 :(得分:1)
此错误已在JQuery 1.8.2发行版中修复。
如果你无法升级到1.8.2,这个黑客对我有用:
$("body").click(function () {
HideAutoCompleteHack();
});
$(document).keyup(function (e) {
if (e.keyCode == 27) { //esc
HideAutoCompleteHack();
}
});
function HideAutoCompleteHack() {
$(".ui-autocomplete").hide();
}
答案 2 :(得分:1)
使用max-height。
.ui-autocomplete {
max-height: 250px; overflow-y: auto; overflow-x: hidden;
}
* html .ui-autocomplete {
height: expression( this.scrollHeight > 250 ? "250px" : "auto" ); /* sets max-height for IE */
}
答案 3 :(得分:0)
好吧,昨天我花了将近20个小时的时间在IE和Chrome上工作了。 这样做了 - >没有解除模糊事件的绑定 - >没有从jquery 1.4.2迁移到更新的版本(1.4.3 / 1.4.4),考虑到我的项目的大小,这是一个风险
我在1.4.2 lib中对jquery.ui.autocomplete.js做了一些小改动。这些更改是从最新版本的jquery.ui.autocomplete.js复制而来的。我附上了适用于我的jquery.ui.autocomplete_modified.zip。下载文件后,请将.zip扩展名更改为.js。
PS:不要在旧库中直接使用较新版本的jquery.ui.autocomplete.js,这不起作用。 它显示了一些'STRONG'html标签以及下拉内容。
文件附在这里
http://forum.jquery.com/topic/setting-height-on-autocomplete#14737000001747027
的问候,
Darshan Shroff
shroffdarshan@gmail.com
答案 4 :(得分:0)
只需增加'ac_results'的宽度,它就会隐藏y溢出
.ac_results ul {
width: 180px;
/*
increase width to hide overflow
*/
list-style-position: outside;
list-style: none;
padding: 0;
margin: 0;
}