我想了解是否有任何区别:
(function($){
...
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
与
(function($){
...
})($);
Run Code Online (Sandbox Code Playgroud)
注意jQuery被替换为$.这个可以吗?它不能在任何地方使用,因为它无法工作?它可以工作,但也许是非标准的?有人可以解释一下这是错误还是可以?谢谢
Flo*_*ker 15
其他JavaScript框架也可以使用$作为快捷方式.为了保证$是函数内部的jQuery,最后传递jQuery而不是$.这种定义函数或"代码区域"的类型是确保在混合框架时$ is真的是jQuery.
许多JavaScript库使用$作为函数或变量名,就像jQuery一样.在jQuery的情况下,$只是jQuery的别名,因此所有功能都可以在不使用$的情况下使用.如果我们需要在jQuery旁边使用另一个JavaScript库,我们可以通过调用$ .noConflict()将$的控制权返回给另一个库:
http://api.jquery.com/jQuery.noConflict/
在"无争议"模式下,$快捷方式不可用,并且使用了更长的jQuery.例如:
$(document).ready(function(){
$(#somefunction) ...
});
Run Code Online (Sandbox Code Playgroud)
变为:
jQuery(document).ready(function(){
jQuery(#somefunction) ...
});
Run Code Online (Sandbox Code Playgroud)
为了使用$的默认jQuery快捷方式,您可以在代码周围使用以下包装器:
jQuery(document).ready(function($) {
// $() will work as an alias for jQuery() inside of this function
});
Run Code Online (Sandbox Code Playgroud)
该包装将导致您的代码在页面加载完成时执行,而$将用于调用jQuery.如果由于某种原因,您希望您的代码立即执行(而不是等待DOM ready事件),那么您可以使用此包装器方法:
(function($) {
// $() will work as an alias for jQuery() inside of this function
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
好读: http ://codex.wordpress.org/Function_Reference/wp_enqueue_script#jQuery_noConflict_wrappers
如果你热衷于:
这应该有助于解渴,:)也许希望这有帮助!