页面加载完成后运行代码的正确方法是什么

时间:2010-12-29 13:25:56

标签: javascript jquery

我有第X页。

在X中,我放入了head标签,一个脚本标签。 一旦身体完成渲染,脚本就需要扫描身体。

我试过jQuery.ready()但是没有调用它! 在脚本开始运行之前,DOM是否已准备就绪? 我能做什么?

感谢

4 个答案:

答案 0 :(得分:4)

jQuery.ready()不是一个函数(嗯,不是你想要的处理程序),你想要的是jQuery(document).ready(),如下所示:

jQuery(document).ready(function() {
  alert("DOM is ready!");
});

或者,更短的形式:

jQuery(function() {
  alert("DOM is ready!");
});

答案 1 :(得分:0)

您是否尝试过这样的准备:

<script type="text/javascript">
$(document).ready(function() {
     //do things..
});
</script>

答案 2 :(得分:0)

您可能需要定义“完成加载”的含义。 jQuery中的.ready()函数(通常被称为$(document).ready(handler);)确实应该在DOM完成加载后立即调用。 (如果没有调用它,我怀疑代码中有错误或者没有加载jQuery。)

但是,正在加载的DOM和正在加载的“页面”之间经常存在直观的混淆。前者是jQuery真正关心(或知道)的全部内容,并且不依赖于加载DOM引用的外部内容(例如图像,样式表等)。

答案 3 :(得分:0)

根据此documentation,以下所有三种语法都是等效的:

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

这段代码提供了一个简单的例子:

<!DOCTYPE html>
<html>
<head>
  <style>p { color:red; }</style>
  <script src="http://code.jquery.com/jquery-1.4.4.js"></script>
  <script>
  $(document).ready(function () {
  $("p").text("The DOM is now loaded and can be manipulated.");
});
  </script>

</head>
<body>
  <p>Not loaded yet.</p>

</body>
</html>