width()不返回值

时间:2010-02-22 04:28:23

标签: javascript jquery

我在页面中有一个图像,我试图获得宽度。

<img class="zoomerIcon" src="zoomer.png" />

所以我试图得到这样的宽度。

var imageWidth = $('.zoomerIcon').width();

但是,除非我在标记中设置了width属性,否则值为0。

如果在属性中手动设置,width()是否只返回大于0的宽度?你可以在这里看到整个剧本。

http://www.wantedcreative.com/development/zoomer/index.html

由于

1 个答案:

答案 0 :(得分:1)

<强>更新

抱歉,我应该先查看你的来源 。以下是您需要更改代码的方法。要意识到的重要一点是,在图像完全加载之前,您无法获得宽度。这就是我使用load事件回调来检索宽度的原因:

// Create the img element, add a load handler, then append it to the body
var $img = $('<img class="zoomIcon" alt="zoom icon" />').load(function(e){
  // get icon image properties for use with animation
  var imageWidth = $(this).width();
  var imageHeight = $(this).height();

  // ... any code that uses these variables needs to go in here ...

}).attr('src', zoomImage).appendTo( document.body );

原始答案:这是一般信息。

您可能将此代码放在document.ready中,它会尝试在加载图像之前检索宽度。试试这个:

$(window).load(function(){
   var imageWidth = $(".zoomer").width();
   alert( imageWidth ); // Should be correct
});