2012-05-11 25 views
0

冒泡計算的高度:jQuery的1.7.1jQuery的隱藏和顯示方法不使用IE8

我看到在IE8一個問題,我有一個div容器是不能正確地計算出它的高度時隱藏/顯示子元素(UL)使用hide()和show()。

此容器div是包裝模塊內容的模塊體。我們的模塊需要有一個刷新方法,每當模塊中的某些東西需要調整模塊的高度/寬度時,這是因爲它們需要固定的高度才能正確渲染。它通過抓取容器div的高度來做到這一點,但是當我在IE中展開或摺疊內部部分時,容器div不重新計算其高度。 (display-none))/ .removeClass(「display-none」)(其中.display-none {display:none;})我找到了, })它修復了這個問題。然而,我希望有一個css解決方案,我仍然可以使用show和hide,某些規則或IE問題/ hack我不知道。

我想問的問題是爲什麼?

這裏有一些更多的細節,

  1. 我隱藏和顯示項目節點組由在造房子樹部件中它是由嵌套的無序列表,又名隱藏和顯示是適用於<ul> s。
  2. 我有另一個動作隱藏和顯示樹節點中的元素,此操作確實會導致容器div正確地重新計算其高度。
  3. 包裝樹的其他div會正確重新計算,因爲某些原因,它會停止在容器div上冒泡。

如果代碼示例或html示例幫助我也可以提供,但我真的很想看看是否有人碰巧擁有我遇到的更一般的概念。

這裏有一個解決方案仍然沒有追查爲什麼容器

.module > div > div > * { 
    word-spacing: normal; 
} 

.module-content-data { 
    max-width: 962px; 
    padding: 10px 10px 0; 
} 

* { 
    margin: 0; 
} 

.module { 
    word-spacing: -1em; 
} 

Inherited fromdiv.main 
.main { 
    word-spacing: -1em; 
} 

Inherited frombody 
body { 
    color: #333333; 
    font-family: Arial,Calibri,Verdana,Helvetica,Sans-Serif; 
    font-size: 11px; 
} 

回答

0

我最終找到的樣式。顯然,在IE8中$ .hide()和$ .show在某些情況下不能正確設置計算高度。然而,我修改我的方法來使用addClass(「display-none」)來調用,並且高度計算正確。我希望這可以幫助其他有類似問題的人。

UPDATE: 在另一頁上有同樣問題的上述「修復」沒有效果。所以我仍然不知道。如果我瞭解更多信息,將會更新。