jquery在src更改后获取图像宽度

时间:2011-11-14 20:16:26

标签: jquery src attr

我的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宽度和高度的函数,我只是为了你的方便写了警报。任何帮助赞赏!

3 个答案:

答案 0 :(得分:9)

您必须先等待图像加载。

试试这个。

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

答案 1 :(得分:1)

修改图像源是异步的,因此不会立即返回。

尝试处理load()

$("#popimage1").load(function() {
  alert($(this).width());
});

答案 2 :(得分:0)

请注意,.load 函数已被弃用 since jQuery 1.8。 使用具有相应事件名称的 .on 函数:

$("#popimage1").on('load', function() {
    alert($(this).width());
})

参考:https://stackoverflow.com/a/40252711/2893053