【问题标题】:impossible to get the height of an image in jquery无法在 jquery 中获取图像的高度
【发布时间】:2013-12-13 03:34:58
【问题描述】:

我有 40 张带有 .myImage 类的图像 使用 css:

.myImage{
    position:absolute;
}

在 jQuery 中我正在做:

$('.myImage').each(function(){
    alert($(this).height());
});

对于前 15 张图像,我有很好的高度,但是直到最后一张图像,警报都是 0。 而且我很确定每张图片都会显示出来,因为使用另一个 jQuery 脚本,我给它们每个人一个位置,它们都会显示出来。

为什么在 15 张图像之后警报为 0?

【问题讨论】:

  • 如果图像还没有加载,你希望jquery(或javascript引擎)如何获取高度?

标签: jquery css height alert


【解决方案1】:

等待所有图像加载。 DOM 将准备就绪,但图像尚未加载。使用window.load 事件而不是jQuery 的document.ready

window.load = function(){
 $('.myImage').each(function(){
  alert($(this).height());
 });
};

【讨论】:

    【解决方案2】:

    或者只等待特定图片加载

    $(document).ready(function(){
      var images = $('.myImage');
    
      images.one('load', function (){
        images.each(function(){
          alert($(this).height());
        })
      }).each(function() {
          if(this.complete) $(this).load();
        });
    });
    

    【讨论】:

    • 请注意,由于跨浏览器在缓存图像上触发加载事件的方式存在差异,因此在第一个页面加载后,这将无法始终如一地工作。 (更不用说处理程序将在每个加载时触发,而不是在它们全部加载时触发。)
    猜你喜欢
    • 2011-02-10
    • 1970-01-01
    • 1970-01-01
    • 2012-07-15
    • 2013-11-03
    • 1970-01-01
    • 2012-04-04
    • 2010-11-19
    • 2012-02-13
    相关资源
    最近更新 更多