使用$代替jQuery会产生错误

时间:2013-06-13 09:17:06

标签: javascript jquery

我正在使用以下jQuery代码:

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

上面的代码运行正常,但如果我使用$代替jQuery,我会收到以下错误:

TypeError: $ is not a function

我理解这是因为某些冲突,但我在上面的代码中是否有使用$的方式?

我也试过使用jQuery.noConflict();,但它仍然会出现相同的错误。

5 个答案:

答案 0 :(得分:2)

使用此: -

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

别名jQuery命名空间

使用其他JavaScript库时,我们可能希望调用$ .noConflict()以避免名称空间困难。调用此函数时,$快捷方式不再可用,每次我们通常写$时都会强制我们编写jQuery。但是,传递给.ready()方法的处理程序可以接受一个参数,该参数传递给全局jQuery对象。这意味着我们可以在.ready()处理程序的上下文中重命名对象,而不会影响其他代码。

Reference

答案 1 :(得分:1)

尝试这样,

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

答案 2 :(得分:1)

你可以将它包装在一个闭包中:

(function($){

    // use $ as jQuery

})(jQuery);

答案 3 :(得分:1)

您可以使用闭包:

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

答案 4 :(得分:1)

首先使用noConflict

var j = jQuery.noConflict();

然后使用

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