Javascript没有在预期时发射
问题描述:
我有一个网站使用javascript将图像大小调整为最大宽度/高度。我使用JavaScript而不是CSS来做到这一点,所以它与旧版浏览器向后兼容。我的问题是,在Chrome中,似乎并不是一直在调整图像大小。有时在第一次访问页面时,图像不会调整大小,重新加载和随后的访问都会调整大小。Javascript没有在预期时发射
http://justinzaun.com/Tree/people/@[email protected]对于示例页面,但实际上网站上的任何人员页面都可以显示相同的问题。我试图在$(window).load()和$(documnet).ready()中调整大小,这发生在familytree.js文件中。
的用户名/密码是admin /密码
答
你把这个代码:
$(this).find("img").load(function() { resize($(this)); });
如果图像已加载哪些什么都不做。
使用这个代替:
var $img = $(this).find("img");
$img.load(function() { resize($(this)); });
// If image is already loaded then it will have a height
if($img.height())
resize($img);
,将调用调整负荷,但如果图像已被加载,它会调用反正调整。
+0
这个作品,谢谢! – Justin808
答
您正在侦听window.onload触发后的图像加载事件,这意味着应该已加载所有图像。尝试类似:
$(function() {
// on DOM ready
$('img').each(function() {
var $img = $(this);
(this.width && this.height) ? resize($img) : $img.load(function() {
// timeout to prevent webkit bug 45586
window.setTimeout((function($img) {
return function() {
resize($img);
};
}($img)),2);
});
});
});
@David - 我提供了用户名和密码 – Justin808