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 では画像の高さと幅を取得できません。load イベント中に画像の高さと幅を取得するために多くのことを試みましたが、うまくいきません。

誰かが解決策を知っていますか?

4

3 に答える 3

1

OK、上記の私のコメントによると、ここに動作するはずのバージョンがあります:

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 に答える