私が達成しようとしていること:
使用している jquery レガシー コードのバージョンは 1.2.6 です。1.9+ が必要な Twitter で Typeahead を使用したい。したがって、noConflict が最初の選択肢になります。1.2.6 ($.browser.msie をサポート) をインポートし、ブラウザーの種類を取得します。1.9 と twitter Typeahead をインポートします。1.2.6 に戻るために noConflict を実行し、変数に 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() の使い方は正しいですか? 私は何か間違ったことをしていますか?