我已经创建了一个插件,我已经减少了插件的简单(即没有功能,只是结构)来调试这个问题,它仍然存在。它处理调整div的大小并将其基于文档的宽度。
问题是报告的文档宽度从实际宽度减少了17px,因此没有正确调整div的大小。
我已发出警报以找出问题发生的位置: 在“就绪”功能之前:1780px(正确宽度) 在“准备”功能内:1763px 插件内:1763px (从“document.width”和“$(document).width()”返回的所有值具有相同的结果)
这只发生在Chrome中,并且即使插件减少到实际上也没有。
有关为何发生这种情况的任何想法?
答案 0 :(得分:3)
虽然JavaScript提供了负载 用于在页面执行代码的事件 渲染,此事件没有得到 触发,直到所有资产如 图像已被完全接收。 在大多数情况下,可以运行脚本 一旦DOM层次结构出现了 完全构造。处理程序通过 到.ready()保证是 在DOM准备好之后执行,所以 这通常是最好的地方 附加所有其他事件处理程序和 运行其他jQuery代码。使用时 依赖于CSS值的脚本 风格属性,这很重要 引用外部样式表或 之前嵌入样式元素 引用脚本。
在代码依赖于加载的情况下 资产(例如,如果维度 图像是必需的),代码 应该放在一个处理程序中 改为加载事件。
你可能应该使用
$(window).load(function() {});
作为触发事件
答案 1 :(得分:2)
我发现jQuery(window).width()在Safari和Chrome中返回了错误的值。