在使用jQuery的Javascript中,我可以使用Immediately Invoked Function Expression向函数添加范围并传递函数jQuery,并将参数命名为$
(function ( $ ) {
$.fn.greenify = function() {
this.css( "color", "green" );
return this;
};
}( jQuery ));
同样,我们编写文档就绪函数,如下所示
$(function() {
console.log( "ready!" );
// use $ variable here
});
这是否意味着文档就绪功能已经作用域? 我是否还需要传递函数jQuery,并在文件就绪函数中命名参数$?类似下面的内容
$(function ( $ ) {
console.log( "ready!" );
// use $ variable here
}( jQuery ));
答案 0 :(得分:0)
立即调用IIFE,它不会等待document
做好准备。所以:
(function($) {
// here document is not necessarly ready
})(jQuery);
执行$(function() { ... });
时,您没有创建IIFE,只需传递一个函数(回调),以便在document
准备就绪时执行。
如果您想同时执行这两项操作,请使用:
(function($) {
$(function() {
// here, document is really ready
// $ available here too
});
})(jQuery);
或者这样做(使用jQuery passes itself as parameter to its ready callback):
jQuery(function($) {
// here, document is really ready
// and $ is obviously available (only here)
});