jQueryは他のJSライブラリとの競合を避ける方法と対比する。


jQueryには$記号が必要で、他のjsライブラリ(例えば有名なprototype)にも$記号が定義されていると、衝突してしまい、jsコードの正常な実行に影響を与えます。jqeuryはこの問題を回避するためのいくつかの案を提供しています。このいくつかの案の違いを見てみましょう。以前の$案の代わりに$jを使用します。2:ready関数はjqueryの入口関数です。ドル(document).ready(){jQueryに置換します。ready($)欠点:readyネスト内のコードだけ有効で、入れ子外のコードに対しては無効です。すべてのロジックがready関数を書いているなら大丈夫です。しかし、私たちは通常、ready関数以外にいくつかのサブ関数を書き、その後、ready関数はこれらの関数を呼び出します。このスキームはこれらの関数に対して無効であり,従ってこのスキームには限界がある。案3(特にjsプラグインを開発する場合):jsコンテンツに関数
 
var $j = jQuery.noConflict();
$j(document).ready(function(){
$j("#btn1").click(function(){
alert("Text: " + $j("#test").text());
});
});
または
 
jQuery(function($){
// js ( ready )
// js ,
}
を包む方法は、上記の2つの案の欠点がなく、jQueryに包まれたコードに影響を及ぼすだけです。他のjsコードに影響しないことが重要です。考えてみてください。jsの公共部品を書いたら、この部品はjqueryを使って、ロバスト性を高めるために、ドルのシンボル衝突問題を考慮しなければなりません。シナリオ1を使用するなら、他の人が使用する時、またあなたの約束を守らなければならなくて、自分のjsコードの中のドルをドルに変えて、方案3を使うならば、ドルの衝突がこの部品に対する影響を免れることができて、また公共のコンポーネントを使う人に自分のコードを修正するように要求する必要がありません。