我要完成的工作:
使用的 jquery 遗留代码版本是 1.2.6。我想通过 twitter 使用 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() 的使用是否正确?我做错什么了吗?