2

Jquery プラグイン間の競合をどのように解決しますか。競合とは、2 つ以上の Jquery プラグイン (ファイル アップロード プラグインなど) が単独では適切に動作するが、2 つ目のプラグインを含めるとエラーや意図しない動作が発生する状況です。

私は現在この問題を抱えており、iframe を使用してページのセクションを他のすべてから分離することを検討しています。しかし、これらの競合を解決するために、可能であればこれを避けたいと思います。

プラグイン コードを監査することは、大量のコードを実行することは不可能であり、考慮すべき開発時間は短いです。

jquery.noConflict を使用することはできません。なぜなら、それを起動してから、コードのすべての行で を置き換える必要があるから$ですJquery。プラグインの編集は不可能です。jquery.noConflict はプラグインでは機能しないと思いましたか? javascript/jquery ライブラリでのみ機能しますか? 私は図書館について言及していません。スライダー、ギャラリー、ファイルアップローダーなどのプラグインだけです。

私が使用した:

(function($) {
jQuery.noConflict();

});

すでに..

4

2 に答える 2

1

ウェブ上で掘り下げた後、いくつかのリソースを見つけました

  1. Jquery プラグインの競合

  2. この jQuery プラグインの競合を解決するにはどうすればよいですか?

  3. http://forum.jquery.com/topic/jquery-plugins-conflict

そして最後の http://www.jotform.com/help/130-Fixing-Jquery-Plugin-Conflicts-jCarousel

誰もが使用することを提案しているようですが、それが機能したと述べた最後の人を除いて-ドキュメントでは、 JQueryはJQueryを使用しないがそれと衝突するライブラリ向けであると説明しているnoconflictため、機能する理由はわかりません. (ここに貼り付けた 3 番目のリソースを参照してください)。

とにかく、コードに飛び込んで変更するのが最善の選択肢のようです。

于 2012-08-24T19:34:42.613 に答える
0

私はjqueryの競合に問題がありましたが、私の場合はprototype.jsも使用していました。私はその解決策を考え出しました。役立つ場合は、ポインターのチェックアウトを次に示します。

「$」が他のプラグインでも使用されている場合、jquery の競合が発生します。したがって、 jQuery.noConflictを定義する必要があります

この場合「jQuery」では、すべてのメソッドが他の参照を使用して呼び出されるようにします。

次のように、ページにスクリプト ファイルを含めてみてください。

  1. すべての jQuery ファイル (ライブラリと jquery に依存するすべてのプラグイン) を含めます。
  2. jQuery.noConflict(); を起動します。
  3. 他のすべてのライブラリ/プラグインを含めます。
  4. jquery メソッドが呼び出される場所では、「$」の代わりに「jQuery」を使用します

これがあなたを助けることを願っています..

于 2012-08-24T20:42:00.887 に答える