document.ready和$ function之间的区别

时间:2012-02-22 14:09:16

标签: javascript jquery jquery-plugins document-ready

  

可能重复:
  What is the difference between these jQuery ready functions?
  jquery: Choosing a document.ready method

这样做有什么区别

$(function() {
    $("a").click(function(event){
        alert("Thanks for visiting!");
    });
});

和这个

$(document).ready(function(){
    $("a").click(function(event){
        alert("Thanks for visiting!");
    });
});

3 个答案:

答案 0 :(得分:42)

他们是一样的。查看jQuery .ready() docs。以下是文档的引用:

  

以下所有三种语法都是等效的:

     

(文档)$。就绪(处理程序)

     

$()。ready(处理程序)(不建议这样做)

     

$(处理程序)

答案 1 :(得分:10)

您的示例之间的功能没有区别 - 它们都绑定到DOM就绪。

作为参考,有两点可以绑定jQuery代码。

第一个将在DOM准备就绪时执行(两者都是等效的):

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

第二个将在页面加载完所有图像,样式表等时执行。

$(window).on("load", function() {
   // code
});

当您需要获取图片的width()height()时,第二个非常有用。这些属性仅在映像完全下载到客户端系统后才可用。

另请注意,$(window).load(fn);现已弃用,不应再使用。

答案 2 :(得分:7)

以下所有三种语法都是等效的:

$(document).ready(handler) 
$().ready(handler) (this is not recommended) 
$(handler) 

http://api.jquery.com/ready/