2010-09-21 92 views
0

此代码适用于firefox,但不适用于IE。有任何想法吗?我正在使用最新的jQuery-ui库。jquery ui自动完成 - 在IE中不工作

<!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> 

搜索:

回答

0

的代码对我的作品在IE中。我看到的唯一区别是,我使用jQuery和jQueryUI的的googleapis版本:

<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" /> 
+0

在铬我看到我得到一个“原始null不允许通过访问控制允许来源”错误更改我的来源到googleapi不会修复它在IE或铬。我仍然在Chrome中遇到同样的错误。 – specked 2010-09-21 15:36:08

+0

我也使用相同的输入 – specked 2010-09-21 15:42:47

+0

这很奇怪。这个错误听起来像是一个跨域AJAX错误。但我不知道为什么它会在FF中起作用,如果那是问题所在。链接2.xml文件与您的网页在同一个域中是否在执行ajax? – fehays 2010-09-21 16:13:49