1

考虑到图像可能被缓存,我正在尝试在加载图像后调整 div 的高度以适合图像。

我正在尝试使用图像完成属性来确定图像是否已经加载,以便我可以调用处理函数或将处理函数添加到将在图像完全加载后运行的加载函数。

当我调用 image.complete 时,我变得不确定。

什么可能导致这种行为?

当我使用 console.log 检查图像时,完整的属性显然在那里并且具有真实值。

//functions
var setHeight = function(imageObj){
    var imageHeight = imageObj.height();
    console.log(imageObj);
    console.log(imageHeight);
    displayElement.css("height", imageHeight);
}

var setImageHeight = function(imageObj){
    displayElement.html(imageObj);
    if (imageObj.complete){
        setHeight(imageObj);
    } else {
        imageObj.load(setHeight(imageObj));
    }
}

// define and image, send it to the function to add to html and adjust height.
var imageObj = jQuery('<img class="current-image"/>').attr('src', ...);             
setImageHeight(imageObj);
4

1 回答 1

2

complete是底层 DOM 元素的属性,因此要访问它,您需要使用以下内容:

if (imageObj[0].complete){
    ...
}

这很可能是它出现为 undefined: imageObj(这是一个 jQuery 对象)本身没有这个属性的原因。

于 2013-03-18T05:11:29.997 回答