1

2 つの jQuery スクリプトを使用しています。1 つはサイトのドロップダウン ナビゲーションを制御するためのもので、もう 1 つはスライドショー用です。

1 つのモジュールの前に次のコードがあります。

jQuery.noConflict();
(function($){
 $.fn.dropmenu = function(custom) 

もう 1 つは次のように始まります。

$(document).ready(function() {

その結果、2 番目の関数のすべてが「関数ではありません」と表示されます。

私が使用しているスクリプトは両方とも jQuery であるため、NoConflict 関数を取り除くことができるはずであり、これら 2 つのスクリプトは一緒にうまく機能します。

賢者のアドバイスを歓迎します。

4

1 に答える 1

2

通常$()は と同じjQuery()です。noConflict は、jquery から $ を「解放」して、他のライブラリで使用できるようにします。したがって、どこでも使用jQueryするのではなく、使用することができます。$

または、例に示されているように実行して、通常どおりjQuery使用できる無名関数に渡すこともできます。$

jQuery.noConflict();
(function($) { 
  $(function() {
    // more code using $ as alias to jQuery
  });
})(jQuery);
// other code using $ as an alias to the other library

したがって、あなたの例の問題は、最初のプラグインが noConflict() を呼び出すため、2 番目のプラグインで $ を使用できないことです。

$(document).ready()内部にあるすべてのものを内部に入れることで解決できます(function($){

または、noConflict必要がない場合は完全に削除します(を使用する他のライブラリを使用していない場合$)。

于 2012-06-14T21:58:02.163 に答える