jQuery—;变量比较,不需要';行不通
编辑:我已经把它放在一个文档就绪函数中。 虽然图像很大,但文档就绪与大图像一致吗? 您可以在此处看到它不起作用: 这简直让我发疯jQuery—;变量比较,不需要';行不通,jquery,if-statement,conditional,tumblr,Jquery,If Statement,Conditional,Tumblr,编辑:我已经把它放在一个文档就绪函数中。 虽然图像很大,但文档就绪与大图像一致吗? 您可以在此处看到它不起作用: 这简直让我发疯 var maxxxHeight = $(window).height(); $(".theImage").children('img').each(function() { myHeight = $(this).height(); if ( myHeight > maxxxHeight ){ $(this).next().text(
var maxxxHeight = $(window).height();
$(".theImage").children('img').each(function() {
myHeight = $(this).height();
if ( myHeight > maxxxHeight ){
$(this).next().text("Browser " + maxxxHeight + " image height " + myHeight);
};
});
出于某种原因
myHeight>maxxxHeight不会产生任何结果。有些图像的尺寸更大,有些则不然。图像不是由CSS设置的。事实上,它们的宽度和高度在任何一点上都没有规定
这怎么可能?这完全是一个noob问题,但我以前做过无数次if's和>
谢谢您需要进行一些调试。由于比较失败,请通过将myHeight和maxxxHeight的值打印到控制台来检查它们。我保证其中一个不是数字。事实上,一个可能是未定义的
您是否将jQuery代码放入
$(document).ready()
调用中?我可以想到发生这种情况的几个原因
我修复了var范围。我得到的图像高度为“0”。我只是不明白为什么会这样。在我的css中,现在img{的高度和宽度为“自动”。@RGBK如果代码运行时图像尚未加载,则元素没有高度。请尝试在文档加载而不是文档就绪时运行代码。
$(document).load(function(){…})
好的,但实际上,我应该看看加载它的div的高度,如果知道图像有多大,它应该知道它会有多大?如果不需要我为每个图像指定元数据,不是吗?内联或通过css?不可能浏览器只知道图像一经加载就有多大加载所有这些像素?!@RGBK在加载内容之前,DIV不会有大小(除非您设置它)。在渲染图像之前,浏览器不知道图像有多大(元数据可能存在),除非您指定它,然后它将缩放图像以适应您的大小。
$(document).load( function() {
var maxxxHeight = $(window).height();
$(".theImage").children('img').each(function() {
$(this).load( function() { // only if images can be loaded dynamically
handleImageLoad(this);
});
handleImageLoad(this);
});
function handleImageLoad(img)
{
var $img = $(img), // declare local and cache jQuery for the argument
myHeight = $img.height();
if ( myHeight > maxxxHeight ){
// this is where your real code would go to make adjustments, etc.
$img.next().text("Browser " + maxxxHeight + " image height " + myHeight);
};
}
});