【发布时间】:2012-07-25 14:06:13
【问题描述】:
这些图片是动态加载的:
<div id="gallery-images" class="gallery-control">
<ul>
<img class="galleryImgs" data-src="images/test-image-1.jpg" src="images/test-image-1-s.jpg" />
<img class="galleryImgs" data-src="images/test-image-2.jpg" src="images/test-image-2-s.jpg" />
<img class="galleryImgs" data-src="images/test-image-3.jpg" src="images/test-image-3-s.jpg" />
</ul>
</div>
我正在尝试从每个 img 标签的“data-src”属性中预加载图像 URL。这是我写的代码:
$('.galleryImgs').each(function(){
$('<img/>')[0].src = $(this).attr("data-src");
});
目前无法运行动态脚本,因此图像标签当前是静态的。这段代码看起来应该可以工作还是我遗漏了什么?
【问题讨论】:
-
检查它是否触发了对控制台上这些图像的任何 GET 请求。如果没有,您可以尝试将其附加到
display:none容器内的 DOM。 -
我会像这样使用每个函数: $('.galleryImgs').each(function(idx, e) { ... }
-
那不行吗?代码看起来不错。我不知道您是遇到实际问题还是只是询问它看起来是否正常。
-
实际上无法判断它是否正常工作,因为正如我所说,现在一切都是静态的,但是在清除缓存后,性能转换似乎有所改善,但显然我不能完全确定,直到我运行实际的动态脚本。如果有的话,我将使用@FabrícioMatté 提供的建议并查看更新的 ajax 源以确保其正常工作。
-
哦,这只是一个快速的想法,无论如何,使用
$.get预缓存每个图像也应该在现代浏览器中工作。我可能会做一个小提琴来测试。