单击滚动条时自动完成选择元素

时间:2010-02-22 12:06:59

标签: jquery jquery-ui autocomplete

我在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一起使用的滚动条来获得固定高度的解决方案吗?

5 个答案:

答案 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;

}