$ .ready没有开火

kal*_*hua -2 jquery

我知道这个问题很多次,但它们看起来都有点不同.下面是我在apache上运行的文件.

<!DOCTYPE html>
<html>
<head>
  <title>test</title>
</head>
<body>
  hello 

  <script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
  <script>
  $.ready(function() {
    $("body").append("world");
  });
  </script>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

在回答这个问题之前,请先查看http://jsperf.com/document-ready-vs-fn-ready-pointless-optimizations-ftw/2.

小智 7

它应该是

$(document).ready(function() {

});
Run Code Online (Sandbox Code Playgroud)

  • 你故意忽略jQuery文档,而不是你认为会更快.这与"应该"不是一回事. (3认同)

pim*_*vdb 5

jsPerf案件存在缺陷.在DOM实际准备就绪时在$.ready内部调用.它将运行传递给的函数.所以,自己调用它是没有意义的:$(document).ready

  • 这是一个内部功能
  • 它不等待DOM准备好
  • 它不接受功能

只需使用正常功能$(...)或者$(document).ready(...)因为这是你在找什么($.ready不是因为jsPerf建议的替代).

  • @kalisjoshua:我理解您对优化的兴趣,但我认为您不能在此处应用它.浏览器之间存在差异,而本月浏览器可能比#2方式更快地执行方式#1,它可能在下个月的浏览器更新版本中反过来. (2认同)