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()函数的$参数中。在该函数中,您可以访问$…确实!谢谢你的提醒。