【问题标题】:Should I use window.load or document.ready jquery我应该使用 window.load 还是 document.ready jquery
【发布时间】:2012-01-23 15:48:34
【问题描述】:

最近我看到你可以使用任何一个

$('document').ready(function() {
//Do Code
});

$('window').load(function() {
//Do Code
});

对于 jQuery。

但是,它们在我看来是一样的!但显然不是。

所以我的问题是:对于基于动画和异步的网站,我应该使用哪一个?还有这两者中的哪一个通常更好用?

谢谢。

【问题讨论】:

  • 你想用它做什么?通常答案是“都不是”。您是否在做需要load 而不是ready 的事情?
  • @pimvdb 这是 jquery,所以不是 dup。
  • @H Bellamy:其实也是这样。

标签: javascript jquery load window document


【解决方案1】:

$('document').ready 在 DOM 准备就绪时运行代码,但在页面本身已加载时不运行,即网站尚未绘制,图像等内容尚未加载。

$(window).load 在页面绘制完成并加载所有内容后运行代码。当您需要获取图像的大小时,这会很有帮助。如果图像没有样式或宽度/高度,则除非使用$(window).load,否则无法获取其大小。

【讨论】:

    【解决方案2】:

    首先,您可能要考虑使用“就绪”事件,您可以像这样处理它:

    $().ready(function() {
      ...
    });
    

    或者,更简洁和惯用:

    $(function() {
      ...
    });
    

    “加载”处理程序确实与实际事件相关,并且可以在几种不同类型的元素上进行处理:例如<img><iframe>。当页面的所有资源都被加载时,文档或窗口级别的“加载”事件就会发生。然而,(在某些浏览器中合成的)“就绪”事件发生在页面 DOM 就绪但可能在诸如 <img> 内容之前。

    另一种选择是简单地将您的<script> 标签放在<body> 的最后,或者甚至在<body> 之后。这样,脚本就可以使用整个 DOM,但您不必担心任何类型的事件处理来了解这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-06
      • 1970-01-01
      • 2017-09-26
      • 2018-09-05
      • 2023-03-21
      • 1970-01-01
      相关资源
      最近更新 更多