不同文档就绪处理程序之间的差异

时间:2012-09-28 15:52:36

标签: javascript jquery document-ready

N00b在这里。如果这是一个糟糕的问题,请提前道歉。

这两个jQuery声明之间有什么不同,实际上,如果有的话?

$(document).ready(function(){
    alert("I'm so loaded 1.");
});

$('document').ready(function(){
    alert("I'm so loaded 2.");
});

在相关的说明中,为什么这样做......

$(document).on('ready',function() {
    alert("I'm so loaded 3.");
});

......但这不是吗?

$('document').on('ready',function() {
    alert("I'm so loaded 4.");
});

2 个答案:

答案 0 :(得分:5)

.ready方法忽略传入的选择器,因为可以调用它的唯一有效对象是文档。建议不要将.on.bindready事件一起使用。此外,您永远不应该使用'document',因为document始终可以直接使用。

答案 1 :(得分:-1)

我从未见过它用作

$('document').ready(function(){
    alert("I'm so loaded 2.");
});

之前从bjkeefe的评论和Kevin B的回答中收集,它无效。

$(document).ready(function(){
    alert("I'm so loaded 1.");
});

表示页面完全加载后,执行该功能。这很有用,因为当页面仍在加载时,没有jQuery会尝试执行,并且尚未加载特定元素。

$(document).on('ready',function() {
    alert("I'm so loaded 3.");
});

on函数意味着应用于动态创建元素的任何事件仍然可以正常工作,但我之前从未使用on,所以我不能这样做保证它可以在这种情况下工作,我通常使用on之类的clickhover等等,因为它确保将任何jQuery应用于动态创建的元素(元素)在页面加载后创建)仍然可以在没有on的情况下工作,jQuery可以正常处理文档中包含的元素,但不会处理动态生成的元素。