slideDown()是jQuery用來將原本隱藏的物件顯示出來的一個方法,它會讓隱藏物件由上到下顯示出來,所以這個方法才叫做slideDown。
先來說明一下何謂隱藏物件。一般我們隱藏物件會用css屬性display:none,這個做法可以讓物件除了隱藏,連物件本身存在的空間也消失不見;另外,visibility:hidden雖然會隱藏物件,但物件本身存在的空間並沒有消失。
把slideDown用在原本使用display:none的物件上,最後物件會變成display:block,就是一個區塊,而如果將slideDown用在消失的tr身上會產生瀏覽器的相容性問題:當這麼做的時候,IE看起來的效果如預期,而firefox和chrome則會把tr視為一個欄位,請注意是一個欄位,也就是td。所以被套用的tr如果擁有多個欄位時,他們會全部擠在一個欄位裡,和其他沒有套用display:block的tr擺在一起,你會發現有套用的tr的範圍只能在其他列的一個td裡。如下表所示:
沒套用 | 沒套用 | 沒套用 | 沒套用 |
有套用 | 有套用 | 有套用 | 有套用 |
你可以試著用IE、firefox來觀察上表就可以得知差異。如果改成將display:block套用到tr裡td,一樣有相同的問題;如果再套用到td裡物件,隨便什麼都好,可以是table,也可以是div,上述的狀況就不會再出現了。
所以如果想要實作隱藏列、顯示列的動態效果,針對欄位裡的物件去設定才不會有問題。