Javascript jquery ui自动完成-不在IE中工作
这段代码可以在firefox中使用,但不能在IE中使用。有什么想法吗?我正在使用最新的jQueryUI库Javascript jquery ui自动完成-不在IE中工作,javascript,jquery,internet-explorer,autocomplete,Javascript,Jquery,Internet Explorer,Autocomplete,这段代码可以在firefox中使用,但不能在IE中使用。有什么想法吗?我正在使用最新的jQueryUI库 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>jQuery UI Autocomplete Remote datasource demo</title> <link type="text/css" href="jqu
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>jQuery UI Autocomplete Remote datasource demo</title>
<link type="text/css" href="jquery.ui.all.css" rel="stylesheet" />
<script type="text/javascript" src="jquery-1.4.2.js"></script>
<script type="text/javascript" src="jquery.ui.core.js"></script>
<script type="text/javascript" src="jquery.ui.widget.js"></script>
<script type="text/javascript" src="jquery.ui.position.js"></script>
<script type="text/javascript" src="jquery.ui.autocomplete.js"></script>
<link type="text/css" href="demos.css" rel="stylesheet" />
<style type="text/css">
.ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; }
.ui-autocomplete {
overflow-y: auto;
max-width: 400px;
}
/* IE 6 doesn't support max-width
* we use width instead, but this forces the menu to always be this wide
*/
* html .ui-autocomplete {
width: 400px;
}
</style>
<script type="text/javascript">
$(function() {
function log(message) {
$("<div/>").text(message).prependTo("#log");
$("#log").attr("scrollTop", 0);
}
$.ajax({
url: "links2.xml",
dataType: "xml",
success: function(xmlResponse) {
var data = $("ROW", xmlResponse).map(function() {
return {
value: $("SC_DF_FIELD_1", this).text(),
url: $("SC_DF_FIELD_2", this).text(),
support_url: $("SC_DF_FIELD_3", this).text(),
description: $("SC_DF_FIELD_4", this).text(),
contact: $("SC_DF_PERSON_LINK", this).text()
};
}).get();
$("#_results").autocomplete({
source: data,
minLength: 0
}).data( "autocomplete" )._renderItem = function( ul, item ) {
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( "<a>" + item.value + "<br>" + item.url + "<br>" + item.description + "<br>" + "Support URL: " + item.support_url + "<br>" + "Contact: " + "<a href=" + item.contact + ">Test</a>" + "<br />" + "</a>" )
.appendTo( ul );
}
}
})
});
</script>
jQuery UI自动完成远程数据源演示
.ui自动完成加载{背景:白色url('images/ui-anim_basic_16x16.gif')右中心无重复;}
.ui自动完成{
溢出y:自动;
最大宽度:400px;
}
/*IE 6不支持最大宽度
*我们使用宽度代替,但这迫使菜单总是这么宽
*/
*ui自动完成{
宽度:400px;
}
$(函数(){
功能日志(消息){
$(“”).text(message).prependTo(“#log”);
$(“#log”).attr(“scrollTop”,0);
}
$.ajax({
url:“links2.xml”,
数据类型:“xml”,
成功:函数(xmlResponse){
var data=$(“行”,xmlResponse).map(函数(){
返回{
值:$(“SC_DF_字段_1”,this).text(),
url:$(“SC_DF_FIELD_2”,this).text(),
support_url:$(“SC_DF_FIELD_3”,this).text(),
说明:$(“SC_DF_字段_4”,this).text(),
联系人:$(“SC_DF_PERSON_LINK”,this).text()
};
}).get();
$(“##_结果”)。自动完成({
资料来源:数据,
最小长度:0
}).数据(“自动完成”)。\u renderItem=功能(ul,项目){
返回$(“”)
.data(“item.autocomplete”,item)
.append(“+”
“+”)
.附录(ul);
}
}
})
});
搜索:
该代码在IE中适用于我。我看到的唯一区别是我使用的是googleapis版本的jquery和jqueryui:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.js"></script>
唯一可能的区别是标记,因为您没有发布自己的标记。我只是有这样一个输入:
<input type="text" id="_results" />
将一个
嵌套在另一个
中对我来说似乎有点可疑,这是一种可能会让IE抓狂的事情。我尝试了你的建议,删除嵌套,但没有修复IE。谢谢。在chrome中,我看到我得到了“访问控制不允许原点为空允许原点”错误将我的源代码更改为googleapi不会在IE或chrome中修复它。我仍然在chrome中遇到同样的错误。我也在使用同样的输入,这很奇怪。这个错误听起来像是跨域ajax错误。但我不知道如果这就是问题所在,为什么它会在FF中起作用。links2.xml文件是否与执行ajax的页面位于同一域中?我在本地计算机上执行所有这些操作,所有文件都位于同一目录中。我基于与jQueryUI捆绑在一起的xml示例。有趣的是,他们的示例也有同样的错误,并且只在FF中工作。看起来本地运行这个是问题所在。谢谢你的提示,费海斯