考虑到可能会缓存图像,我正在尝试调整div的高度以使其适合图像。

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

当我调用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);

最佳答案

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

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


这可能是为什么它未定义的原因:imageObj(这是一个jQuery对象)本身不具有此属性。

08-19 03:07