1
jQuery(window).load(function() {
    jQuery.each(jQuery(".extraimgs"), function() {
        //this.height = 0 and this.width=0 in IE only
        if (this.height > this.width) {
            if (this.height > 263) {
                this.height = 263;
            }
            if (this.width > 354) {
                this.width = 354;
            }
        }
        else {
            this.height = 263;
            this.width = 354;
        }
    });
});

HTML 代码

<asp:DataList runat="server" ID="dlImages" RepeatColumns="2" RepeatDirection="Horizontal" RepeatLayout="Table" OnItemDataBound="dlImages_ItemDataBound" Style="display: none;">
    <ItemTemplate>
        <div>
            <asp:Image runat="server" ID="imgPics" class="extraimgs" />
        </div>
    </ItemTemplate>                                 
</asp:DataList>

我在 IE 中遇到此代码的问题。在这里,我在运行时设置图像的高度和宽度(页面加载事件 - 使用 jQuery)和使用代码隐藏的图像源。

此代码适用于除 IE8 之外的所有浏览器。在页面加载事件中,我得到了图像的高度和宽度,但在 IE8 中我没有得到图像的高度和宽度。我在加载事件期间尝试了很多获取图像的高度和宽度,但它不起作用。

有谁知道解决方案?

4

3 回答 3

1

好的,根据我上面的评论,这是一个应该可以工作的版本:

jQuery(function() {
    jQuery(".extraimgs").load(function() {
        var $this = $(this);
        if ($this.height > $this.width) {
            if ($this.height > 263) {
                $this.height = 263;
            }
            if ($this.width > 354) {
                $this.width = 354;
            }
        }
        else {
            $this.height = 263;
            $this.width = 354;
        }
    });
});
于 2012-05-17T08:11:00.180 回答
0

尝试这个 :

jQuery(document.body).load(function () {
      jQuery(".extraimgs").each(function (i) {
        if (this.height > this.width) {
            if (this.height > 263) {
                this.height = 263;
            }
            if (this.width > 354) {
                this.width = 354;
            }
        }
        else {
            this.height = 263;
            this.width = 354;
        }
      });
    });
于 2012-05-17T07:47:19.913 回答
-1

怎么样$(document).load()$(document).ready()代替$(window).load()

于 2012-05-17T07:31:50.637 回答