【问题标题】:Getting element's width in Chrome using jQuery使用 jQuery 在 Chrome 中获取元素的宽度
【发布时间】:2010-03-13 19:29:18
【问题描述】:

假设我有这张图片:

<img src="images/01.jpg" border="0" rel="shadow" />

然后使用 jQuery,我得到它的宽度:

$('[rel="shadow"]').width();

Firefox 和 IE 报告图像的正确尺寸,例如 140px,而 Chrome 报告 0。如何解决这个问题?

注意

我不想为图像设置显式宽度,例如:

<img src="images/01.jpg" border="0" rel="shadow" width="140" />

那么,如何以跨浏览器的方式获取元素的width 属性中未定义的宽度?

【问题讨论】:

  • 什么版本的 Chrome?脚本是在load 事件处理程序还是$(document).ready 中?
  • @Crescent Fresh:Chrome 版本是:4.0.295.0,脚本在里面准备好了。
  • Chrome 和 Safari 似乎都有问题。
  • @Anthony Forloney:有什么可能的解决方案吗?这是那些浏览器的错误吗?
  • @loviji:正是,这就是我问的原因。如果我们知道正在使用loadready 中的哪一个,答案就很简单了。

标签: javascript jquery html css


【解决方案1】:
$(window).load(
    function() {
        alert($('img').width());
    }
);

这将起作用:Test case。基本上它会等到图像加载完毕后再执行代码(当ready函数触发时,文档已经完全加载但图像还没有加载)。

【讨论】:

  • @Andreas Bonini:完美,负载从未出现在我的脑海中,谢谢 :)
  • @andreas-bonini 谢谢拯救了我的一天!
  • @Gagan:不客气,我很高兴我多年前的一些回答今天仍然有用:)
猜你喜欢
  • 2014-06-22
  • 1970-01-01
  • 2014-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多