ie7 + jquery。切换图像和检测尺寸

时间:2010-08-04 10:52:58

标签: jquery internet-explorer-7

有没有办法在IE7中检测图像的实际宽度。

目前我们有一个更改的图像(我们目前不知道尺寸),也可以由用户缩放(更改其$('#img')。height())。在IE8和firefox中,我们可以在高度上调用removeAttr来将图像重置为其自然大小,然后根据此进行计算。在IE7中,removeAttr不起作用(http://gimp4you.eu.org/sandbox/js/test/removeAttr.html)并且将高度设置为“”完全隐藏图像。

因此,高度检测首次正常工作,但一旦变焦发挥作用,高度和宽度就会被修改,因此下一张图像会使用这些。

我想避免完全删除img标签并重新创建一个没有高度标签的标签,但还有其他方法可以实现吗?

更新

抱歉,不太清楚。问题不在于存储加载的高度,而是在更新src标记以更改图像时,会记住html / css中设置的高度 - 它不使用实际图像高度。我需要能够检测到实际的图像高度,即:如果您只打开图像多少像素高。在比使用removeAttr('height')的IE7更好的浏览器中,然后在加载图像之后,读取.height()属性提供了这个,但是removeAttr不能与IE7一起使用,所以你留下的高度已经设置了图像。

我在这里基于Russ C的例子创建了一个例子:

http://jsfiddle.net/px5yY/9/

如果单击“图像2”然后“单击我”,然后单击“重置”,它会正确加载图像,缩放图像并返回原始大小。

然而,如果你点击'Click Me'然后'Image 2'然后'Reset'它会保持很小(因为从缩小的图像中记住了height属性。我需要能够访问由第一个例子)。

我希望这更清楚。

2 个答案:

答案 0 :(得分:2)

编辑:在JSFiddler上更新:

http://jsfiddle.net/px5yY/11/

答案 1 :(得分:1)

您可以使用$('#img')。data()来存储原始大小。