我已经看到了ready()方法的一些快捷方式,并且想知道哪个首先发生,因为我的测试结果使我感到困惑。。
$(document).ready(function(){
alert("document ready");
});
$(window).load(function(){
alert("window ready");
});
(function($){
alert("self invoke");
})(jQuery);
这里先进行自我调用,然后进行文档处理,然后进行窗口处理。 self invoke技术是否被视为ready()方法?
第三个选项不是.ready()
的快捷方式(或与jQuery有关的快捷方式),自我调用运行立即(只要它出现在代码中),this可能是您的快捷方式正在考虑:
$(function(){
alert("I'm a ready shortcut");
});
将功能传递到$(func)
是$(func)
的快捷方式。 $(document).ready(func);
版本如下所示:
no-conflict
尼克·克雷弗(Nick Craver)的话是正确的,但我认为值得注意的是,在最后一个示例中,它实际上根本没有对jquery做任何事情。 jQuery作为参数传递给匿名函数,但该函数没有对其执行任何操作。
最后一个示例等效于立即调用的函数表达式(IIFE):
jQuery(function($) {
//$ is jQuery
});
并且很明显,这只是在该行代码被点击并立即发出警报时立即调用匿名函数。根本就没有调用jQuery,这就是为什么尼克在说绝对不是ready()方法时是对的。
(function(){
alert("self invoke");
})();
对前两个有何不同有很好的解释:
[This article vs.
$(document).ready
] >>jQuery提供了两种强大的方法来执行代码和附加事件 处理程序:
$(window).load
和$(document).ready
。准备好文件 加载HTML文档并且DOM为 准备好,即使尚未加载所有图形。如果你想 在窗口加载之前为某些元素挂起事件,然后$(window).load
是正确的位置。$(document).ready
当整个页面为 满载,包括所有帧,对象和图像。因此 与图像或其他页面内容有关的功能应放置 在窗口或内容标签本身的加载事件中。
$(document).ready(function() { // executes when HTML-Document is loaded and DOM is ready alert("document is ready"); });