jQuery.noConflict及其使用方法

jQuery.noConflict及其使用方法,jquery,Jquery,我尝试使用jQuery.noConflict(),但在window.load函数中,我得到一个“$不是函数”错误 我的代码: jQuery.noConflict(); jQuery(document).ready(function($) { /** Dropdown Menu **/ $('ul.tabs li:has(ul)').bind("click", function() { $(this).find('ul').show('normal');

我尝试使用
jQuery.noConflict()
,但在window.load函数中,我得到一个“$不是函数”错误

我的代码:

jQuery.noConflict();

jQuery(document).ready(function($) {
    /** Dropdown Menu **/
    $('ul.tabs li:has(ul)').bind("click", function() {
        $(this).find('ul').show('normal');
        //event.stopPropagation();
    });
    $('ul.tabs li').bind("mouseleave", function() {
        $(this).find('ul').hide('normal');
        //event.stopPropagation();
    });
});

jQuery(window).load(function($) {
    $('#container').fadeIn('normal');
});
如果我使用jQuery而不是“$”,效果很好,但是是否可以继续使用“$”?
有人知道/明白这是怎么回事吗?

谢谢

如果使用
jQuery.noConflict()
$
将不再定义用于jQuery

您必须使用
jQuery()
而不是
$()

如合同所述:

许多JavaScript库使用$作为函数或变量名,只是 就像jQuery一样。在jQuery中,$只是jQuery的别名,所以 所有功能均可用,无需使用$。如果我们需要使用 jQuery旁边的另一个JavaScript库,我们可以返回 通过调用$.noConflict()$返回到另一个库。


唐斯克的评论


如果要使用
$
参数,代码的第一部分会起作用,因为jQuery的
$
对象总是传递给
ready
处理程序。但是,相同的行为不适用于
load
处理程序

如果不想在
load
处理程序的主体中用
jQuery
替换
$
,可以在闭包中捕获该变量:

(function($) {
    $(window).load(function() {
        $("#container").fadeIn("normal");
    });
})(jQuery);

或者,您可以在
ready
处理程序中注册
load
处理程序,其中
$
已正确绑定。

如果查看代码,您会发现它被放入$(document).ready()函数的$参数中。在该函数中,您可以访问$…确实!谢谢你的提醒。