$(document).ready(function()和$(function()有什么区别?

7

我知道这个是干什么用的:

$(document).ready(function(){
    // Your code here...
});

最近我看到有人这样做:

<script type="text/javascript">     
$(function(){
    // Your code here...
});
</script>

这两种方法做同样的事情吗?我在这里看到一个匿名函数被声明在jquery选择器内部,但从未被调用,但页面运行的方式似乎是在页面加载时运行。

最近?这已经可用了5年了.... - blockhead
这就是我不喜欢jQuery的原因之一...为了简洁而牺牲了(重新)发现性。如果我没记错,$(...)至少可以根据参数的类型做三件完全不同的事情,那么你如何查找这样的东西呢?如果你熟悉文档,你就能做到 - 这正是关键所在。该语言是为那些熟悉其细节的人设计的。</rant> - LarsH
请注意,在这种情况下,如果您记得$jQuery的别名,您可以在此处查找它:http://api.jquery.com/jQuery/ - LarsH
2个回答

7

是的,它们正在执行相同的操作。当调用参数为单个函数对象时,$()函数将包装$(document).ready()

(编辑以反映评论中的问题)


那么每当你使用jQuery选择器时,后台都会进行一个安静的document ready检查? - thirsty93
3
不,jQuery会检查传递给它的对象类型,如果是函数,它将绑定到文档的ready事件;如果传递的是字符串,则会执行其他操作(如选择DOM元素)。 - Alex Barrett

5
是的,它们正在做完全相同的事情。
$(function(){
    // Your code here...
});

"

"是的缩写形式。

$(document).ready(function(){
    // Your code here...
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接