我最近学到了一种非常方便的技巧,可以让你在jQuery函数中传递$,从而使所有包含的代码处于无冲突模式。优点是你可以使用'$'而不是'jQuery'编写所有包含的代码。
以下代码可以正常工作...
jQuery(document).ready(function( $ ) {
// My code
});
这段代码不起作用...
jQuery(window).load(function( $ ){
// My code
});
它显示“$不是一个函数”。我该怎么做才能让它工作?
我最近学到了一种非常方便的技巧,可以让你在jQuery函数中传递$,从而使所有包含的代码处于无冲突模式。优点是你可以使用'$'而不是'jQuery'编写所有包含的代码。
以下代码可以正常工作...
jQuery(document).ready(function( $ ) {
// My code
});
这段代码不起作用...
jQuery(window).load(function( $ ){
// My code
});
jQuery
对象:(function($){ //This functions first parameter is named $
$(window).load(function(){
// Your code
});
})(jQuery); //Passing the jQuery object as a first argument
$
总是指向那个时刻的 jQuery 对象(否则,$
可能在后面被覆盖,导致不可预测的错误)。问题的实际问题在于,OP 假设在.load(function($) ... )
中的$
是一个 jQuery 对象(事实并非如此 - 请参阅.load()
http://api.jquery.com/load/ 的文档)。第一个示例可以工作,因为它实际上是.ready
文档中记录的功能,请再次阅读文档:http://api.jquery.com/ready/ - Rob W