1

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.");
});
4

2 回答 2

5

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

于 2012-09-28T15:55:03.400 回答
-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 可以正常工作在文档中包含的元素上,但不能正常工作在动态生成的元素上。

于 2012-09-28T15:57:16.160 回答