2010-01-17 4 views

답변

39

그래서 당신은 display: blockdisplay: none 구별 할? 그렇다면, 당신은 더 나은이의 :visible 선택과 조합 is() 기능을 사용할 수 있습니다 :

if ($('#toshow').is(':visible')) { 

} else { 

} 

이 관계없이 display: block, 또는 display: inline, 또는 display: inline-block를 사용한 경우의 작동합니다.

+3

나는이 작품 생각하지 않습니다. –

+0

@Dustin : 왜 이런 식으로 코멘트를 게시하는지 잘 모르겠지만 이것은 매우 간단합니다. 이 특정 사례에 문제가있는 경우 다른 곳에서 발생합니다. – BalusC

+2

좋아, 이렇게 해보자. div가 현재 표시되는지 여부를 확인하려면이 방법이 유용합니다. 이것은 div가 블록인지 (원래 질문인지, Google 검색에서이 stackoverflow 질문으로 인도되었는지 여부를 알고 싶다면) 작동하지 않습니다. 제 경우에는 (현재 숨겨진) div인지 알고 싶습니다. 부모 div를 공개했을 때 숨어지기 시작했습니다. http://jsfiddle.net/ejVvu/1/ 보시다시피이 답변은 div에 블록 속성 (원래 질문)이 있는지 확인하는 데는 효과가 없습니다. 따라서 현재의 "더 나은"해결책 가시성이 있지만 질문에 대한 대답은 아닙니다. –

15

css 기능을 사용해야합니다.

if($("#toshow").css("display") == "block"){ 

}else{ 

} 
4

:visible 선택기를 잊지 마세요.

if ($("#toshow:visible").length) { 
    // it's visible 
} else { 
    // it's not visible 
} 
4
$(document).ready(function(){ 
    if ($('#toshow').css('display') == 'block') { 
     // Do something. 
    } else { 
     // Do something else. 
    } 
}); 

트릭을 할해야합니다.

0

이 옵션은 완벽하게 작동했습니다. 나는 브라질 인이고 텍스트를 번역해야했지만, 코드를 보았을 때 나는 그것이 올바른 옵션이라는 것을 즉시 보았습니다. 부모 요소가 숨겨져있는 경우

function reversoObjeto() { 
 
    $('#janela').fadeToggle(500, function(e) { 
 
    if ($("#janela").css("display") == "none") { 
 
     alert("Janela Apagou!"); 
 
    } else { 
 
     alert("Janela Acendeu!"); 
 
    } 
 
    }) 
 
}