1

新しい JS ライブラリを開発しています。その中核部分として JQuery を組み込みたいと考えています。

私のライブラリはあらゆる種類の Web サイトで動作するはずなので、それらのサイトでは JQuery が別のバージョンで既に含まれている可能性があり、私のライブラリ内で JQuery と競合する可能性のある他のライブラリが含まれている可能性があります。

jQuery.noConflict();  

グローバル スコープから変数が削除されるため、完全な解決策ではない可能性があります。私のライブラリは、ユーザーが他の設定を変更したくありません。

では、どうすればこれらの問題を回避できますか

  • 他のライブラリと競合していますか? ( $ エイリアス - jQuery.noConflict(); の可能性があります)。
  • Web ページに既に含まれている場合、他のバージョンの JQuery と競合します。

前もって感謝します。JQuery を含めないでください。通常の JS を使用してください :)

4

2 に答える 2

0

グローバル スコープから変数を削除するかどうかに関係なく、検索と置換を実行して、どのライブラリがどのバージョンの jQuery を指しているかを変更する必要があります。とにかく、グローバルスコープで $ または jQuery & conflict を使用するためです。次のようなことを試すことができます:

jQuery の最初のバージョンを読み込む

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.js"></script>
<script type="text/javascript">
  jQuery.noConflict();
  (function(window,$) {
    window.jQuery_v1 = $;
  })(window,jQuery);
  delete jQuery;
</script>

jQuery の 2 番目のバージョンを読み込む

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.js"></script>
<script type="text/javascript">
  jQuery.noConflict();
  (function(window,$) {
    window.jQuery_v2 = $;
  })(window,jQuery);
  delete jQuery;
</script>

jQuery の両方のバージョンを使用する

<script type="text/javascript">
  // this is now one version of jQuery
  console.log(jQuery_v1);
  // this is now another version of jQuery
  console.log(jQuery_v2);
</script>
于 2013-06-18T07:40:55.470 に答える