$.noConflict()

$変数によるjQueryのコントロールを破棄します。

$.noConflict( [removeAll] ) 1.0追加

戻り値:Object

引数 説明
[removeAll] Boolean値のtrueを指定すると、グローバル空間の"jQuery"を含む全てのjQuery変数を開放します。

多くのjavaScriptライブラリは「$」を関数または変数名として使用しています。 jQueryの場合、「$」は「jQuery」のエイリアスであるため、全ての機能が「$」無しでも使用することが可能です。 もし、jQueryと「$」を使用する別のjavaScriptライブラリを共存させる必要が有る場合は、 $.noConflict()を実行して、「$」を開放します。

<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $.noConflict();
  // 「$」を使用したother_lib.jsによるコードをここに書きます。
</script>

下記のように.ready()メソッドのコールバック関数の引数でjQueryのエイリアス名を指定する機能を使用すれば、 コールバック関数内で別のライブラリとの衝突を恐れること無く、「$」を使用することが出来ます。

<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $.noConflict();
  jQuery(document).ready(function($) {
    // 「$」を使ったjQueryのコードを書くことができます。
  });
  // ここ以降は別ライブラリの「$」を使用したコードを書きます。
</script>

必要であれば、引数にtrueを与えることで「jQuery」変数名も開放することができます。 非常に稀なケースだと思いますが、例えばjQueryの異なるバージョンを共存させたい場合などに必要になるかもしれません。 ほとんどのjQueryプラグインが「jQuery」変数が存在することを前提にしているので、使用する際には注意が必要です。

サンプル

$.noConflict()を使用して、$変数を解放後、「jQuery」を参照してjQueryの機能を使用しています。

jQuery.noConflict();
// 「jQuery」によって処理を行なっています
jQuery("div p").hide();
// 別のライブラリの$()を使用しています。
$("content").style.display = 'none';

.ready()の略記の例です。

jQuery.noConflict();
(function($) {
  $(function() {
    // $ を使用したjQueryのコードを書きます
  });
})(jQuery);
// $ を使用した別のライブラリのコードを書きます

別のエイリアスを作成して、代わりに使用する例です。

var j = jQuery.noConflict();
// jQueryによる処理です。
j("div p").hide();
// $()を使用した別のライブラリの処理です。
$("content").style.display = 'none';

.noConflict(true)によって、完全に別のオブジェクトに移している例です。

var dom = {};
dom.query = jQuery.noConflict(true);

//…

// 移したオブジェクトからのjQueryの処理です。
dom.query("div p").hide();
// $()を使用した別のライブラリの処理です。
$("content").style.display = 'none';
// 別のバージョンによるjQueryの処理です。
jQuery("div > p").hide();

 Back to top

© 2010 - 2017 STUDIO KINGDOM