0

次のjQueryコードを使用しています:

jQuery(document).ready(function() { 
    jQuery('#main').click(function(){
        jQuery('#box').slideDown();
    }); 
});

上記のコードは問題なく動作します$が、代わりにを使用すると、jQuery次のエラーが発生します。

TypeError: $ is not a function

競合が原因であることは理解していますが$、上記のコードで使用する方法はありますか?

私も使用しようとしましjQuery.noConflict();たが、それでも同じエラーが発生します。

4

5 に答える 5

2

これを使って:-

jQuery(function($) { 
    $('#main').click(function(){
        $('#box').slideDown();
    }); 
});

jQuery 名前空間のエイリアス

別の JavaScript ライブラリを使用する場合、名前空間の問題を回避するために $.noConflict() を呼び出したい場合があります。この関数が呼び出されると、$ ショートカットが使用できなくなり、通常は $ を記述するたびに jQuery を記述する必要があります。ただし、.ready() メソッドに渡されるハンドラーは、グローバル jQuery オブジェクトに渡される引数を取ることができます。これは、他のコードに影響を与えることなく、.ready() ハンドラーのコンテキスト内でオブジェクトの名前を変更できることを意味します。

Reference

于 2013-06-13T09:19:25.870 に答える
1

このようにしてみて、

  $.noConflict();
  jQuery(document).ready(function($) {
        $('#main').click(function(){
           $('#box').slideDown();
        }); 
  });
于 2013-06-13T09:20:06.253 に答える
1

クロージャーでラップできます:

(function($){

    // use $ as jQuery

})(jQuery);
于 2013-06-13T09:20:20.253 に答える
1

クロージャーを使用できます:

(function ($) {
    $(document).ready(function () {
        $('#main').click(function () {
            $('#box').slideDown();
        });
    });
})(jQuery)
于 2013-06-13T09:20:33.250 に答える
1

最初の使用noConflict

var j = jQuery.noConflict();

次に使用します

j(document).ready(function() { 
    j('#main').click(function(){
        j('#box').slideDown();
    }); 
});
于 2013-06-13T09:21:15.897 に答える