JQuery自动完成将不允许从下拉IE中进行选择
JQuery Autocomplete will not allow selection from dropdown IE
我的代码适用于I.E.9、Chrome和Safari,但许多人在使用旧版本的Internet Explorer和当前版本的Firefox时遇到了问题。它按预期显示下拉选择,但不允许用户单击选择。这是代码:
<script type="text/javascript" src="js/jquery-1.6.2.js"></script>
<script type="text/javascript" src="js/jquery.ui.core.js"></script>
<script type="text/javascript" src="js/jquery.ui.datepicker.js"></script>
<script type="text/javascript" src="js/jquery.ui.widget.js"></script>
<script type="text/javascript" src="js/jquery.ui.position.js"></script>
<script type="text/javascript" src="js/jquery.ui.autocomplete.js"></script>
<link type="text/css" href="css/jquery-ui-1.8.17.custom.css" rel="Stylesheet" />
<style>
.ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; }
</style>
<script>
$(function() {
function log( message ) {
$( "<div/>" ).text( message ).prependTo( "#inputString" );
$( "#inputString" ).scrollTop( 0 );
showCar(message);
}
$( "#inputString" ).autocomplete({
source: "ajax/search.php",
minLength: 1,
select: function( event, ui ) {
log( ui.item ?
"Selected: " + ui.item.value :
"Nothing selected, input was " + this.value );
}
});
});
</script>
使用开发工具,它会在控制台中显示以下错误:SCRIPT65535:对方法或属性访问的意外调用。jquery-1.6.2.js,第5609行字符5
这表明:
prepend: function() {
return this.domManip(arguments, true, function( elem ) {
if ( this.nodeType === 1 ) {
this.insertBefore( elem, this.firstChild );
}
});
},
编辑现在它抛出一个错误:SCRIPT438:对象不支持属性或方法"prepend"jquery-1.6.2.js,第5975行,字符4
即:
jQuery.each({
appendTo: "append",
prependTo: "prepend",
insertBefore: "before",
insertAfter: "after",
replaceAll: "replaceWith"
}, function( name, original ) {
jQuery.fn[ name ] = function( selector ) {
var ret = [],
insert = jQuery( selector ),
parent = this.length === 1 && this[0].parentNode;
if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) {
insert[ original ]( this[0] );
return this;
} else {
for ( var i = 0, l = insert.length; i < l; i++ ) {
var elems = (i > 0 ? this.clone(true) : this).get();
jQuery( insert[i] )[ original ]( elems );
ret = ret.concat( elems );
}
return this.pushStack( ret, name, insert.selector );
}
};
});
5974行是本节的顶行:
if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) {
insert[ original ]( this[0] );
return this;
}
如果您的项目使用编译,您可能会考虑在入口点的顶部安装并添加文件
import 'core-js'
目前,core-js-polyfill库是使跨浏览器支持的最简单方法
相关文章:
- 为什么我的上下文选择器和.buttonset()在ie中花费了这么长时间
- 点击选择Div不在IE上工作
- 在Twitter BootStrap嵌套下拉列表中托管一个选择列表(IE 9特定)
- JQuery日期选择器在IE 7上不起作用
- p: inputText和p:在IE 10上选择OneMenu奇怪的交互
- 浏览并选择用户硬盘驱动器中的文件在IE中未定义
- ng-单击在IE中不起作用的选项选择Angularjs
- 单击事件似乎不适用于 IE 中的选择元素
- 在 IE 中从 DOM 中删除选项时,滚动选择元素会跳到顶部
- IE上的Jquery选择行为不同
- 阻止选择在IE中工作但不在Chrome中工作的文本
- 属性='值'jquery选择没有'我不在IE工作
- jQuery日期选择器在Firefox和IE的MVC部分视图上进行ajax更新后无法工作
- jQuery在一些Mobile/IE浏览器上选择更改
- 显示:无;在“选择多个”中,在 IE 8 上不起作用
- JQuery 双击侦听器在选择 - IE 不起作用
- IE <选择>滚动顶部
- IE选择不追加选项
- JQuery IE选择问题
- IE选择和范围问题