1

私は、他の Web サイト (Google Analytics や AdSense など) に埋め込む JavaScript に取り組んでいます。AJAX リクエスト、アニメーション、JSON(P) など、いくつかのハードコア JS が実行されています。

私は jQuery を使用してプロトタイプを作成しましたが、本当にそれを使い続けたいと思っていますが、他のサイトに jQuery もインストールされている場合 (おそらく別のバージョンであっても)、これを埋め込むと問題が発生する可能性があります。

これを回避する良い方法はありますか?私がこれまでに得た最善の解決策は、すべての出現箇所jQuerykQuery, および$に単純に置き換えること$kQueryです。これにより、名前の競合がなくなります。助言がありますか?既存の JavaScript と可能な限り互換性を持たせるにはどうすればよいですか?

4

2 に答える 2

3

noConflictjQuery 用のモードがあります。それがあなたが必要とするものです。jQuery は、 と の元の値を上書きする前にローカル コピーとして保存しwindow.jQueryますwindow.$

したがって、解決策は次のとおりです。

var kQuery = $kQuery = $.noConflict( true );

window.jQueryandを元の値に置き換え、 window.$jQuery 自体への参照を返します。


コードをまったく変更したくない場合は、次のようにラップします。

(function( $ ){
   // Your code with $
})( $.noConflict( true ) );
于 2010-10-25T12:35:16.217 に答える
0
 this might cause a problem when embedded on the other sites if they also have jQuery installed -- probably even a different version

これは真実ではないと思います。少なくとも 3 つの異なるバージョンの jQuery を切り替えるのに問題はありませんでした。 下位互換性があります。

于 2010-10-25T12:34:24.010 に答える