这样做:
$(document).ready(function(){
alert("Hello World");
});
这:
(function($){
alert("Hello World");
})(jQuery);
做同样的事情吗?
前者是我常用的东西,而我见过的是在几个插件中使用的东西。它们是相同的吗?如果不是,那么它们之间有什么区别?何时使用哪一个?
答案 0 :(得分:2)
他们不一样。
前者是document.ready事件处理程序。该事件将在DOMContentLoaded
事件激发后立即运行。也可以这样写:
$(function() {
alert("Hello World");
});
后者是Immediately Invoked Function Expression (IIFE)。这将立即执行(顾名思义)。因此,在执行此逻辑之前,您需要手动确保DOM处于准备好与之交互的状态。通常,可以通过将脚本放在body
标记的末尾或它自己的document.ready处理程序中来完成此操作。不过,在使用jQuery时,后者有点多余。