我正在研究一些jQuery来调整页面上的图像大小。这个块工作正常:
var size = 350;
$("img").each(function () {
if ($(this).height() > $(this).width()) {
var h = size;
var w = Math.ceil(($(this).width() / $(this).height()) * size);
}
else {
var w = size;
var h = Math.ceil(($(this).height() / $(this).width()) * size);
}
$(this).css({ "height": h, "width": w });
});
问题是小图像按比例放大。没问题,如果陈述应该再照顾一下!
var size = 350;
$("img").each(function () {
if ($(this).height() > size || $(this).width() > size) { //Always false
if ($(this).height() > $(this).width()) {
var h = size;
var w = Math.ceil(($(this).width() / $(this).height()) * size);
}
else {
var w = size;
var h = Math.ceil(($(this).height() / $(this).width()) * size);
}
$(this).css({ "height": h, "width": w });
}
});
我在哪里错了?
答案 0 :(得分:3)
问题是我的脚本在加载页面上的图像之前触发,即使脚本标记位于页面底部。那里的经验教训!我将.each改为.load,这对我的目的来说很好。
更好的解决方案可能是将其包含在$("window").load()
事件或$(document).ready()
中。
答案 1 :(得分:1)
您的问题可能是认为您从某个组件获取值,而您实际上从<获取值(或者没有获得null
以外的任何值)<强>其他地方。
快速而肮脏的方法是:
alert(thatDarnedValue);
或者,如果您知道如何,请将其写入控制台窗口,开发DIV或您用于调试的任何内容,实际上看到那里有什么。
我经常感到惊讶 - “这个 应该在那里” - 体验。
当我们在不同的准备阶段检查图形组件的值时,通常会出现这种缺陷。文档可能已加载但未准备就绪等。