2012-02-14 52 views
2

我想實現我自己的標籤,但在某些情況下:可見選擇似乎並沒有工作,我認爲它應該:JQuery的:可見過濾

http://jsfiddle.net/TtCLQ/1/

總之時候,一個div只包含輸入類型「image」或「file」,看起來:visible總是返回false,無論它們是否實際可見。 (在最新的Chrome和IE9上測試過。)

這是一個錯誤,還是我期待錯誤的行爲?我應該做些什麼來檢測是否顯示div(及其子)?

(在小提琴,你可以看到:可見過濾器不會出現在螢火蟲看着TAB3的風格切換標籤周圍一起工作。)

回答

3

#pane DIV選擇所有在的div #pane並將它們設置爲display:none因此窗格內的div內的div也是不可見的。當您將#tab3設置爲顯示時,您不會在內部顯示div,因此會出現問題。即#tab3變得可見,但#tab3> div不可見。我

#pane>div 
{ 
display:none; 
} 

此只選擇直接子DIV,而不是這些div裏面的div更新小提琴。另一種方法是向選項卡(.tab)添加一個類 並將它們的可見性集體設置爲

+0

多麼愚蠢的我。謝謝。 – bdares 2012-02-14 05:01:14

+0

我也曾經犯過這個錯誤。我幾天前才瞭解到>和+選擇器。 CSS路徑非常強大 – 2012-02-14 05:02:23

1

children()僅返回直接子元素,以便div標籤下的div保持隱藏狀態。

我通過刪除不需要的循環等了你的代碼變得更小:

http://jsfiddle.net/TtCLQ/6/