2009-05-18 100 views
3

在IE7中,此代碼不能正常工作:奇怪IE7 jQuery的高度()行爲

 myJqObj.css("height", DEFAULT_HEIGHT); 

當它運行時,它似乎myJqObj的高度設置爲0;不過,如果我設置後立即查詢高度,一切工作正常:

 myJqObj.css("height", DEFAULT_HEIGHT); 
     myJqObj.height(); 

這也適用於:

 myJqObj.css("height", DEFAULT_HEIGHT); 
     myJqObj.width(); 

我敢肯定,如果你對自己的運行上面的代碼,事情會工作正常。這一切都發生在一些相當複雜的頁面構建過程中。在我的js環境中顯然有些東西會導致錯誤。任何人都看過這樣的事情嗎?任何想法從哪裏開始尋找?

回答

1

我會檢查特異性。您是否驗證過您的「myJqObj」對象對於IE7足夠具體?

當我設置需要FireFox而不是IE7的CSS時,通常是因爲我已經爲元素設置了CSS,例如<div id="mydiv"><p>元素,並且我的<div id="mydiv"><p class="myclass">高度定義正被第一個定義覆蓋。

+0

謝謝BPerrealt。意思是確保myJqObj的高度沒有被一個祖先元素超越? – morgancodes 2009-05-18 14:30:06

0

您可能正在尋找一個錯誤的地方。

您是否將myJqObj設置爲在CSS中浮動?如果是這樣,因爲浮動元素崩潰,高度實際上是0。在IE7

0

同樣的問題設定高度通過將其設定後僅查詢的高度解決了這一點。

這是一個錯誤?