jQueryUI自动完成功能无法在IE9上正常工作

时间:2012-09-20 15:33:53

标签: jquery-ui jquery-ui-autocomplete

我在我的网站上使用此代码段代码

jQueryUI Autocomplete

实际上这在$( "#find" ).autocomplete({ minLength: 1, source: function(request, response) { var results = $.ui.autocomplete.filter(locations, request.term); response(results.slice(0, 10)); }, focus: function( event, ui ) { $( "#find" ).val( ui.item.value ); return false; }, appendTo: "#results", open: function(){ var position = $("#results").position(), left = position.left, top = position.top; $("#results > ul").css({left: (left + 15) + "px", top: (top + 30) + "px", width: (206) + "px" }); }, select: function( event, ui ) { $( "#find" ).val( ui.item.value ); $(":header.title").html(ui.item.value); var new_url = ui.item.href; // instead of adding 'statistics', by using location.hash, it wont be necessary unlike using pushState() location.hash = new_url; return false; } }) .data( "autocomplete" )._renderItem = function( ul, item ) { return $( "<li></li>" ) .data( "item.autocomplete", item ) .append( "<a>" + item.label + "<br />" + item.desc + "</a>" ) .appendTo( ul ); }; Firefox上完全正常,它的行为就像它给定的样本here时的行为一样,我只是根据我的内容复制和修改它通缉。但在Chrome上,IE9上无法显示其他浏览器上显示的item.desc。我认为开始修复的代码是最后一部分,它附加了自动完成的建议。有人可以帮帮我吗?干杯!

3 个答案:

答案 0 :(得分:0)

您需要将bgiframe.min.js升级到更高版本(3.0工作正常) https://github.com/brandonaaron/bgiframe

答案 1 :(得分:0)

创建一个新的css类来覆盖现有的jquery ui autocomplete“position”:“absolute”

.ui-autocompelte{
"position": "absolute"
....
....
}

新的CSS类

.ui-autocomplete-ie9-fix { position: relative !important; }  

然后应用这个css类 $( “#查找”)。autocompelte({ ........ ....... });

if (!$.browser.msie || ($.browser.msie && $.browser.version != 9)) {
        $("ul.ui-autocomplete").addClass("ui-autocomplete-ie9-fix");
    }

答案 2 :(得分:-1)

在标题后添加以下标记

<meta http-equiv="X-UA-Compatible" content="IE=8" />