1

Jquery アプリケーションを他の JavaScript ライブラリと一緒に使用しています。グーグルで検索すると、 Jquery.noConflict() が他のライブラリとの競合を回避するためのソリューションであることがわかりました。テスト目的で、正常に動作している html の head セクションに以下のスクリプトを追加しました。

<script type="text/javascript" src="includes/myJqueryScript.js"></script>
<script type="text/javascript">
    jQuery.noConflict();
</script>

<script type="text/javascript" src="js/jquery-1.2.6.js"></script>
<script type="text/javascript" src="js/mootools-core-1.4.5-full-compat.js"></script>
<script type="text/javascript" src="js/mootools-core-1.4.5-full-nocompat.js"></script>
<script type="text/javascript" src="js/prototype-1.5.js"></script>
<script type="text/javascript" src="js/prototype-1.7.1.0.js"></script>

ただし、一部のシナリオでは、以下に示すように他のライブラリの下部にある可能性があり、競合しています。

<script type="text/javascript" src="js/jquery-1.2.6.js"></script>
<script type="text/javascript" src="js/mootools-core-1.4.5-full-compat.js"></script>
<script type="text/javascript" src="js/mootools-core-1.4.5-full-nocompat.js"></script>
<script type="text/javascript" src="js/prototype-1.5.js"></script>
<script type="text/javascript" src="js/prototype-1.7.1.0.js"></script>

<script type="text/javascript" src="includes/myJqueryScript.js"></script>
<script type="text/javascript">
    jQuery.noConflict();
</script>

つまり、私のスクリプトは、他のライブラリが呼び出される前または後に来るということです。この問題の良い解決策はありますか。これが Jquery.noConflict() の構文でない場合は修正してください。

前もって感謝します

4

3 に答える 3

4

私は通常、すべての jquery コードを次のようにラップします。

(function($){
  //use jquery $() here
})(jQuery);
于 2012-09-13T07:27:29.807 に答える
0

いくつかのグーグルの後、私は便利な解決策を見つけました

複数のバージョンの jQuery を使用する

于 2012-09-13T09:29:04.403 に答える
0

myJqueryScript.js独自の jQuery コードで構成されている場合は、作成したこの変数を使用する必要がnoConflictあるように、その前に呼び出す必要があります。しかし、jquery がケースに含まれた後に呼び出す必要があります。そのため、mootools http://mootools.net/blog/2009/06/22/the-dollar-safe-mode/を入手する必要があります。var jQuery = $.noConflict();jQueryjquery-1.2.6.jsprototype and mootoolsDollar safe mode

于 2012-09-13T08:37:46.300 に答える