2009-09-02 7 views
1

私はサーバー側のフレームワークで作業しています。jQueryは他のJavascriptライブラリと共存していますか?

ここで私は手作りのjavascriptを追加してクライアント側で作業を行っています。しかし、これはますます苦痛になってきており、jQueryが助けになると聞いたことから、

これは本質的にサーバーサイドのものなので、jQueryを使用するにはユーザーが(あると仮定して)義務付けたくありません。

他のポピュラーなjavascriptライブラリと共存してjQueryがどの程度うまくいくのですか?それはそれ自身の目的のために世界的な名前と出来事をハイジャックするのだろうか、それとも比較的尊敬している人である&だ。

答えて

6

jqueryにはnoconflictオプションがあり、他のライブラリとの併用に役立ちます。あなたはまた、それは他のライブラリhere

に対するグローバルな名前空間を汚染どれだけ比較することができ

私はまた、あなたがjavascriptのクライアント側の拡張機能を追加する議論として、あなたが実際に、求めているのかわからないんだけど、その後言いに行きますそれは主に「サーバーサイドのもの」になると考えています。どちらですか?ほとんどのクライアントまたはほとんどのサーバー?

+0

興味深いものです。私がやっていることはサーバー側のものですが、本質的にクライアント側でもあるAjaxのようなものと、両側で最もよく対処される検証のようなものがあります。 – flybywire

+1

その場合、jQuery ajaxのサポートは非​​常に良好でシンプルです。壮大なものはありませんが、自分のものを使うよりも確かに優れています。検証プラグインはhttp://docs.jquery.com/Plugins/Validationで非常に簡単で、優れたプラグインです。 – Steerpike

+0

+1これは、x-xが求めていることとほぼ同じです。私は、x-xがユーザーに独自のjavascriptを挿入できるようなインターフェイスを構築している可能性があり、ライブラリの競合が懸念される可能性があると考えています。 「サーバー側」とはおそらく、ユーザーが編集したコードではなくx-xの実際のサーバー実装コードを指しているだけです。 –

1

jQueryの一般的に受け入れられているプリンシパルは、匿名関数内でそれにアクセスできる範囲です。これにより、名前空間の汚染が防止されます。パターンは次のようになります。

// anonymous function that takes the jquery $ object (aka window.jQuery) 
(function($) { 
    $(document).ready(function() { 
     // jQuery code here, call functions, etc 

    }); 
})(jQuery.noConflict()); // removes $ from window scope, returns the jQuery object 

もっと見る: http://docs.jquery.com/Core/jQuery.noConflict

1

jQueryの、2つのグローバル識別子があります)jQueryとあなたがjQuery.noConflictを(使用して1つの識別子にそれを変更することができます$

をし、唯一のグローバルはjQueryです。

関連する問題