0

案例:内容被动态添加到某个div(使用jquery)。内容包含大量元素(比如 1000 个 div)。

然后我需要计算元素的正确尺寸(实际上我需要以 px 为单位的顶部位置,所以我使用 jquery position() 函数)。首先,我在添加内容后立即开始计算。

问题是有时顶部位置计算不正确我相信(并且非常肯定)这是因为尚未正确应用于该内容的 css 样式。

我试图解决这个问题,在添加内容后一些超时(使用 setTimeout)后开始调用。我使用的超时时间越长(我测试了 20 到 500 毫秒),浏览器应用样式的时间就越多,计算错误的可能性就越小。

问题是这个超时解决方案不是 100% 可靠和安全的,我需要使用相当大的超时来确保进程的正确性,这可能会降低进程的整体性能。

所以我需要知道什么时候样式被完全应用,什么时候我可以开始位置计算。你有什么建议,有什么可靠的方法可以做到这一点?

4

2 回答 2

0

我弄清楚问题出在哪里,它是动态应用的页面样式(动态创建的样式标签),尽管在将此样式添加到页面后需要等待超时。如果超时时间不够,有时位置计算仍然可能失败。虽然不是最可靠的策略-(

于 2013-02-08T03:37:53.003 回答
0

使用 Firebug 或 Google Chrome 开发工具?右键单击问题区域并选择“检查元素”将显示 jQuery 或任何其他 Javascript 完成其操作之后的代码。

为了查看jQuery 执行所需操作需要多长时间(即在您的 CPU 上),您可以保持 Google Chrome 开发工具代码检查器打开,刷新页面并希望看到代码更改或不更改。这是我会做的方式。

于 2013-02-07T12:10:44.730 回答