1

我有这个代码:

var img = $('<img>')
.attr('src','a.jpg')
.load(function(){
    alert(img.width()) ;
}) ;

宽度始终等于 0,

如何获得自然宽度尺寸?

谢谢!

编辑:我只是console.log(img)然后我看到了naturalWidth
但获得它的唯一方法是:img[0].naturalWidth

http://jsfiddle.net/akkara/L9dMD/1/

4

1 回答 1

1

您编写的代码是正确的。

var img = $('<img>')
.attr('src','a.jpg')

// Correct till here
// Wrong after this!

.load(function(){
    alert(img.width()) ;
});

但是,它仍然不是在 DOM 中作为布局。所以,这行不通。您需要做的是,您需要将它放在 DOM 中。

所以,最好的办法是,将它放在 DOM 中并获取属性。

var img = $('<img>')
.attr('src','a.jpg')
.appendTo('body');
alert(img.height());
img.remove();

更新的工作小提琴:

$(document).ready(function(){
    var img = $('<img>')
        .attr('src','http://blog.tmcnet.com/blog/rich-tehrani/uploads/new-microsoft-logo.png')
        .css('visibility', 'hidden')
        .appendTo('body');
    var imgHt = img.height();
    alert(imgHt);
    img.remove();
});

小提琴:http: //jsfiddle.net/praveenscience/KpCRe/

于 2013-01-26T13:06:04.283 回答