我知道这个问题很多次,但它们看起来都有点不同。下面是我在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。
答案 0 :(得分:7)
应该是
$(document).ready(function() {
});
答案 1 :(得分:5)
jsPerf案件存在缺陷。当DOM实际准备就绪时,$.ready
在内部调用 。它将运行传递给$(document).ready
的函数。所以,自己调用是没有意义的:
只需使用正常函数$(...)
或$(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()的处理程序保证在执行之后执行
DOM准备好了,所以这通常是附加所有其他内容的最佳位置
事件处理程序并运行其他jQuery代码。 因此,要解释原始语法 - ready()
函数的
$('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');
});