2012-05-17 226 views
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中的圖像的寬度我有問題,這個代碼在IE中。在這裏,我設置了運行時圖像的高度和寬度(頁面加載事件 - 使用jQuery)以及使用代碼隱藏的圖像源。

此代碼工作得很好,除了IE8所有的瀏覽器。在頁面加載事件中,我得到了圖像的高度和寬度,但我沒有得到IE8中圖像的高度和寬度。我在加載事件中嘗試了很多以獲取圖像的高度和寬度,但它不起作用。

有誰知道解決方案嗎?

+2

你試過用'$(本).height()'和'$(本).WIDTH()'?這應該可以。 – ubik

+0

是的..我試了它,但它不工作。我得到0(零)作爲高度和寬度 – ravidev

+0

這將是很好有一個jsfiddle玩這個。您也可以嘗試使用'jQuery(「。extraimgs」).load(function(){/ * ... * /})',因爲圖像在代碼執行時尚未加載。 – ubik

回答

-1

$(document).load()$(document).ready()而不是$(window).load()

+0

事實上,我沒有注意到OP正在使用'.load()'。 – ubik

+0

OP代表哪裏? – 11684

+0

「樓主」 – ubik

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; 
     } 
     }); 
    }); 
+0

這不工作..我沒有得到使用此的高度和寬度 – ravidev

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; 
     } 
    }); 
});