0

我的名字是 Ezequiel,我是 JQuery 的新手

我想动态更改 an 的 src 并获取它显示的图像的宽度。

我有一个带有 ID(“idImg”)的 img 标签。

问题是我的代码仅适用于第一个 src 更改,并且我必须多次更改(迭代),但我只会向您展示 2 个硬编码更改。

      $("#idImg").attr("src", scrString); //src field changes ok
      alert($("#idImg").width()) // ok, this is the real width.
      $("#idImg").attr("src", scrStringANOTHER); //src field changes ok
      alert($("#idImg").width()) // nope, it keeps the same width than the last one.

我不知道,只是无法找出问题所在

编辑:我知道我必须等到它加载,但如果我多次更改 src,那将不起作用。我需要多次更改 src,并检查每个图像的结果宽度。

有什么帮助吗?

很Ty

以西结。

4

2 回答 2

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

绑定到图像的加载事件,此时宽度将准备就绪。

另一种解决方法是将图像加载到不同的 img 中,然后在加载后将其换出。在预加载图像上查看这个 SO 线程:Preloading images with jQuery

于 2013-02-28T20:20:59.337 回答
0
$(document).ready(function(){ 
    $('#idImg').on('click', function() {
      $(this).attr('src', 'newimage.png');  
    }).load(function() { alert(this.width); });
});

查看完整示例:http: //jsfiddle.net/k9rn7/

于 2013-02-28T20:25:20.027 回答