jQuery とその他の JavaScript フレームワーク
すでにご存知のとおり、jQuery は jQuery の短縮形として $ 記号を使用します。
他の JavaScript フレームワークでも $ 記号を省略表現として使用するとどうなるでしょうか?
その他の JavaScript フレームワークには、MooTools、Backbone、Sammy、Cappuccino、Knockout、JavaScript MVC、Google Web Toolkit、Google Closure、Ember、Batman、Ext JS などがあります。
これらのフレームワークの中には (jQuery など) 省略記号として $ 記号を使用するものもあります。同じ省略記号を使用している 2 つの異なるフレームワークを使用している場合、スクリプトの実行が停止する可能性があります。
jQuery チームはこの問題を考慮し、noConflict() メソッドを実装しました。
jQuery noConflict() メソッド
noConflict() メソッドは $ 識別子の制御を解放し、他のスクリプトが $ 識別子を使用できるようにします。
例
もちろん、省略形を完全な名前に置き換えることで jQuery を使用することもできます:
$.noConflict();
jQuery(document).ready(function(){
jQuery("button").click(function(){
jQuery("p").text("jQuery はまだ実行中です!");
});
});
例
独自の略称。 noConflict() は、後で使用するために変数に保存できる jQuery への参照を返します。この例を見てください:
var jq = $.noConflict( );
jq(document).ready(function(){
jq("button").click(function(){
jq("p").text("jQuery ");
});
});
例
jQuery コード ブロックで $ ショートカットが使用されており、このショートカットを変更したくない場合をクリックすると、$ 記号を変数としてreadyメソッドに渡すことができます。この方法では、関数内で $ 記号を使用できますが、関数の外では引き続き「jQuery」を使用する必要があります:
$.noConflict();
jQuery(document).ready(function($){
$("button").click( function(){
$("p").text("jQuery はまだ実行中です!");
});
});