【发布时间】:2012-05-05 06:11:49
【问题描述】:
这个问题已被问过几次,但没有以可以帮助我解决具体问题的方式回答。从导航列表中,单击某个项目时,我正在使用 .html() 函数将一些 HTML 内容加载到 div 中。没有ajax请求。 HTML 内容包含图像。因此,加载可能需要一些时间。而且由于.html()是同步操作,所以下一行会立即执行。
一旦我使用.html() 加载内容,我就会启用一个名为 tinyscrollbar 的第三方自定义滚动条。如果加载的内容有图像,则滚动条会在加载图像之前计算内容 div 的高度,从而导致滚动条不会一直滚动。
我不想使用.setInterval()。有解决方案吗? jQuery 中是否还有其他函数类似于 .html() 函数但具有某种回调功能?
谢谢。
【问题讨论】:
-
您可以确定内容中有多少张图片,然后监听它们的加载事件
-
您是否尝试在每个图像标签上定义设置的宽度和高度?即使图像尚未加载,如果滚动条知道图像高度,它也应该能够正确计算高度。
-
$(document).ready 在等待图像后会不起作用吗?
-
robinson 评论似乎是正确的答案。您可以简单地使用 $("#mydiv img") 之类的内容迭代图像。
-
@MatthewRiches $(document).ready 不起作用,因为它不等待图像和 css 完成加载。