【发布时间】:2023-03-09 18:07:01
【问题描述】:
我今天遇到了最奇怪的错误。我不确定这是 Chrome 中的错误还是我可以解决的问题,但这里是。
我构建了一个 JQuery 函数来调整论坛上发布的一组图像的大小:
$(".post-message img.post-image").load(function(){
$(this).each(function() {
var maxWidth = 200;
if($(this).width() > maxWidth)
{
var factor = $(this).width() / maxWidth;
var width = $(this).width();
var height = $(this).height();
$(this).css('width', width / factor);
$(this).css('height', height / factor);
}
});
});
问题是这似乎只在我刷新页面时才有效。当您按上一个或链接到该页面时,它不起作用。
在 chrome 中,当函数不起作用时,$(img).width() 属性在两种情况下都返回 0。
此函数在 IE9 和 FF3 中按预期执行
我能做些什么来解决这个奇怪的行为?
【问题讨论】:
-
我假设这一切都在 document.ready 或类似的东西中?
-
不,不是。我从堆栈中得到另一个答案,建议改为在 $(img).load() 上执行代码。问题实际上是在这两种情况下它都不起作用
$(this).width()返回 0。让我把它添加到问题中。 -
尝试在其中包装一个 document.ready 或其他东西,看看它是否有效。 Chrome 可能会在加载图像之前执行脚本,使其宽度为 0。
-
还是同样的问题,我之前也试过了。
标签: javascript jquery image google-chrome resize