2012-08-11 56 views
1

我想確定一個特定的<div>的可見性,但我的檢查總是顯示它是可見的。我使用下面的代碼:檢測div是否可見或不使用jquery

if($('.stg_gall_cro_cnt').is(":visible")) { 
    var visi="yes"; 
} 
else { 
    var visi="no"; 
} 
alert(visi); 

此檢查運行時,都會提醒說「是」,即使<div>是不可見的。有人可以幫忙嗎?

.stg_gall_cro_cnt CSS中默認設置爲:

visibility:hidden; 
+1

具有可見性的元素:hidden或opacity:0被視爲可見的,因爲它們仍佔用佈局中的空間。 – 2012-08-11 03:39:00

回答

3
if($('.stg_gall_cro_cnt').css('visibility') === 'hidden'){ 
    // hidden 
}else{ 
    // visible 
} 
+0

感謝很多朋友只是我在尋找 – 2012-08-11 03:22:16

+0

嘿wanovak你可以幫我多一個代碼? – 2012-08-11 03:27:10

+0

是的,繼續併發布它 – wanovak 2012-08-11 03:55:10

2

:visible選擇器僅匹配佔據所呈現的文檔中沒有空間元素。其中visibility設置爲hidden的元素佔用空間,因此jQuery認爲它們是可見的。

您需要在CSS中設置display: none以使用is(':visible')或使用css('visibility') == 'hidden'在jQuery中使用visibility: hidden來實現期望的效果。

+0

不,我需要可見選項 – 2012-08-11 03:15:30

+0

@SakshiSharma wanovak的答案顯示瞭如何測試元素是否佔用空間但看不見。 – Jordan 2012-08-11 03:18:48

+0

+1爲解釋爲什麼現有的代碼不起作用 – nbrooks 2012-08-11 03:44:40