使用 jQuery 进行所有 dom 操作的 window.load? [复制]

Posted

技术标签:

【中文标题】使用 jQuery 进行所有 dom 操作的 window.load? [复制]【英文标题】:window.load for all dom manipulation with jQuery? [duplicate] 【发布时间】:2014-06-24 17:25:13 【问题描述】:

例如,当操作 div 的高度或各种 css 规则时,文档完全加载是一件好事。那么为什么在 dom 中操作对象时不总是使用 (window).load 而不是 (document).ready 呢?

【问题讨论】:

When manipulating things as height of a div for instance, or various css rules, it's a good thing that the document is completely loaded. 不是真的,确实经常你最好使用准备好的文档。但可以肯定的是,这取决于你在寻找什么 【参考方案1】:

这当然取决于您的需求。

假设您的网站有很多图像,但您需要在文档准备好后立即触发某些事件,然后使用 $(window).load(//your events) 将等待所有图像先加载然后触发事件。 在这种情况下,最好使用 $(document).ready(//your events)。

你可以在这里跟进这个问题,

What is the difference between $(window).load and $(document).ready?

【讨论】:

【参考方案2】:

因为“文档准备就绪”要早得多。它表示 DOM 已加载并准备好进行操作。

另一方面,“窗口加载”还包括图像、视频和可能的 Flash 元素 - 所有可能需要很长时间才能加载的元素(尤其是 Flash,除非它具有适当的预加载器),并且您会拥有在您的页面执行任何操作之前等待,即使没有理由这样做。

【讨论】:

好点,但是对于改变高度,比如说 div 中的图像取决于它们的高度 window.load 是好的。 并非如此。图片一开始下载就会暴露他们的widthheight属性,这(特别是在照片的情况下)可能在window.onload被解雇之前几秒钟。 我现在正在写一个博客,侧边栏需要拉伸到与主博客文章相同的高度。我使用 jQuery 来执行此操作,如果我在 (document).ready 内部执行此操作,我有时会得到正确的结果,而有时会得到完全虚假的结果。如果我在 (window).load 内执行此操作,我总能得到正确的结果。 我明白了。是的,这是有道理的。但是,您是否考虑过使用不同的 CSS 使侧边栏具有相同的高度?仅使用height:100% 可能是可行的,但可能需要使用flex 框。在最坏的情况下,您始终可以使用表格。 没关系,我用 (window).load 工作得很好,谢谢你的帮助 :)【参考方案3】:

因为你今天能做的,所以你不会等到明天。文档就绪后 Dom 就绪后触发,窗口加载等待所有资源下载。

【讨论】:

以上是关于使用 jQuery 进行所有 dom 操作的 window.load? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

jQuery对DOM节点进行操作(删除节点)

JQuery中的DOM操作

JQuery中的DOM操作

Jquery基础之DOM操作

vue操控dom

使用jQuery操作节点