【问题标题】:jquery get image width after src changejquery在src更改后获取图像宽度
【发布时间】:2023-04-03 21:35:01
【问题描述】:

我的 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();

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

【问题讨论】:

  • 您是否尝试过使用那里的答案?它应该服务于您的目的。
  • 嗯,问题有点不同,但第一个答案解决了我的问题,现在我又看到了..但我第一次没有意识到,无论如何我认为不锁定会很好这个话题,因为问题有点不同..谢谢大家!

标签: jquery src attr


【解决方案1】:

您必须先等待图片加载。

试试这个。

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

【讨论】:

    【解决方案2】:

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

    尝试处理load()

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-27
        • 2018-07-05
        • 1970-01-01
        相关资源
        最近更新 更多