$ .ready没有开火

时间:2012-07-22 14:57:11

标签: 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>

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

7 个答案:

答案 0 :(得分:7)

应该是

$(document).ready(function() {

});

答案 1 :(得分:5)

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

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

只需使用正常函数$(...)$(document).ready(...),就像您正在寻找的那样($.ready 是jsPerf建议的替代方案)。

答案 2 :(得分:3)

  

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

页面标题为“毫无意义的优化”是有原因的。

而不是进行无意义的优化 - 在这种情况下,你每页浏览量只需要微秒或更少 - 只需使用在文档就绪时运行代码的文档化方法。

这里的答案是使用常规方式,并且谷歌“过早优化”。

答案 3 :(得分:2)

$.ready不是效用函数,试试这个:

$(document).ready(function() {
    $("body").append("world");
});

答案 4 :(得分:2)

document.ready回调的另一种替代方法是 -

$(function(){

});

我喜欢这个,因为它很容易记住,并且在您查看代码时非常独特,可以脱颖而出。


来自ready()函数的

  

传递给.ready()的处理程序保证在执行之后执行   DOM准备好了,所以这通常是附加所有其他内容的最佳位置   事件处理程序并运行其他jQuery代码。

因此,要解释原始语法 - $('document').ready(function() { ... }您正在做的是将ready回调函数附加到document对象,以便您知道何时加载了所有DOM加上你的jQuery库。

答案 5 :(得分:2)

将你的脚本移出body标签,看看是否有所作为..不确定是否可能是原因..

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

  <script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>


</body>
<script>
  $.ready(function() {
    $("body").append("world");
  });
  </script>
</html>

答案 6 :(得分:1)

这也有效:

$(function () {
  $('body').append('world');
});