2011-02-04 14 views
8

ちょっと、私はnoConflict関数のためのドキュメントを見ていただけで、どういう仕組みが(明らかに)動作しているかは何も言いません。私はちょうど誰かが知っているかどうか疑問に思ったjQueryのnoConflict関数はどのように機能しますか?

$は設定されていませんか? (delete window.$?)

どのような提案も大歓迎です。

答えて

10

あなたはsource codeをチェックすることができます。

// Map over the $ in case of overwrite 
    _$ = window.$ 

//.... 
noConflict: function(deep) { 
     window.$ = _$; 

     if (deep) { 
      window.jQuery = _jQuery; 
     } 

     return jQuery; 
    } 
+0

ありがとう、私はおそらくそれを考えていたはずです。私はこれがどのように動作するか見て苦労しています。 _ $はバックアップの種類ですか?そして、それは競合が実行されていないときにそれを戻しますか? – Olical

+1

はい、_ $は現在のウィンドウのバックアップです。$ var。 。 – Distdev

+0

私は jQuery.noConflict =機能(深い){ \t(。ウィンドウ$ === jQueryの)場合は{ \t \tウィンドウ$ = _ $として、最新バージョンのコードを取得しています。 \t} \t場合(深い&& window.jQuery === jQueryの){ \t \t window.jQuery = _jQuery。 \t} \t return jQuery; }; 現在はどのような目的に深い奉仕ですか?と "if(window。$ === jQuery)"は何のために使うのですか? "if(deep && window.jQuery === jQuery)"でも何のために使用しますか?説明してください – Subhadeep

9

それはjQueryのがロードされた前にそれが何だったかに$に戻ります。

+0

ああ、それはDistdevの答えに関する私の質問に答える。私は本当にあなたの答えの両方を受け入れたい:/ – Olical

+0

笑、彼を受け入れる、私は今日repキャップに達している;) – Petah

+0

さて、やった、ありがとう! – Olical

関連する問題