我想要完成的任务:
jquery遗留代码的版本使用的是1.2.6。我想通过推特使用Typeahead,需要1.9+。所以noConflict将是首选。我导入1.2.6(它支持$ .browser.msie),获取浏览器类型。导入1.9和twitter Typeahead。我noConflict返回到1.2.6并将noConflict赋给某个变量。
代码(在jsp页面中):
<ps:script src="/jquery/jquery-1.2.6.min.js" />
<ps:script src="/jquery/jquery.hoverIntent.minified.js" />
<ps:script src="/mustache/mustache.js" />
<script src="/autosuggest/jquery-1.9.1.min.js" type="text/javascript"></script>
<script src="/autosuggest/bootstrap-2.3.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
var jq191 = $.noConflict(true);
// jquery 1.9 does not support $.browser.msie, so do ie check first then pass it to autosuggest
var ie = false;
if ($.browser.msie) { ie = true; }
jq191(function() {
var url = "<%= System.getProperty("url") %>";
var autoSuggest = new AutoSuggest(url, [
{inputId: "input1", buttonId: "input1button", destination: "dest1"},
{inputId: "input2", buttonId: "input2button", destination: "dest2"}
], ie);
autoSuggest.config();
});
</script>
config()是为Typeahead等配置内容的方法。
到目前为止,在Firefox和Chrome上,一切都很棒。在IE上它会随机抛出这个“SCRIPT 428”错误(字面意思是随机的,我刷新/打开页面10-20次后才会看到这个错误。
我对noConflict()的使用是否正确?我做错了吗?