我的jQuery代码:

 img[i]='img-src';
 $("#popimage1").attr("src",img[i]);
 alert($("#popimage1").width());      //doesn't give the width of the current image, but it gives for the previous, and for first null


我的html代码:

 <img src="" id="popimage1"/>


所以概念是我用jquery为每个i加载不同的图像src,然后对宽度和高度进行一些计算。问题是我使用前一个计数器i获得了图像的值。我提出了一个临时解决方案

  $("#popimage1").hide();
  setTimeout(alert($("#popimage1").width(),2000);
  $("#popimage1").show();


但是它并不总是有效,并导致不必要的超时。
除了警报之外,还有另一个使用img宽度和高度的函数,我只是为了方便起见编写了alert。任何帮助表示赞赏!

最佳答案

您必须等待图像首先加载。

尝试这个。

img[i] = "img-src";
$("#popimage1").attr("src", img[i]).load(function() {
  alert($("#popimage1").width());
});

09-18 19:17