我尝试使用jQuery.noConflict()
但是在window.load函数中我得到一个“$ is not a function”错误。
我的代码:
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而不是'$'它可以正常工作,但是可以继续使用'$'吗?
谁知道/明白这有什么问题?
谢谢!
答案 0 :(得分:12)
代码的第一部分有效,因为jQuery的$
对象总是传递给ready
处理程序。但是,相同的行为不适用于load
处理程序。
如果您不想在$
处理程序的正文中用jQuery
替换load
,则可以在闭包中捕获该变量:
(function($) {
$(window).load(function() {
$("#container").fadeIn("normal");
});
})(jQuery);
或者,您可以在load
处理程序中注册ready
处理程序,其中$
已正确绑定。
答案 1 :(得分:3)
如果您使用jQuery.noConflict()
,则不再使用$
来使用jQuery。
您必须使用jQuery()
代替$()
如doc中所述:
许多JavaScript库只使用$作为函数或变量名 就像jQuery一样。在jQuery的例子中,$只是jQuery的别名,所以 无需使用$即可使用所有功能。如果我们需要使用 另一个JavaScript库和jQuery一起,我们可以返回控件 $通过调用$ .noConflict()
返回到其他库
Thansk发表评论。
如果您想使用$
参数