图像完整属性返回undefined

时间:2013-03-18 03:59:15

标签: javascript html image dom

考虑到图片可能会被缓存,我尝试调整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);

1 个答案:

答案 0 :(得分:2)

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

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

这可能是为什么它会以未定义的形式出现:imageObj(这是一个jQuery对象)本身没有这个属性。