2011-05-29 11 views
6

tengo a mi HTML comoCómo detectar cuando todos los divs dentro de otro div son invisibles

<div id="main"> 
    <div class="item">String</div> 
    <div class="item">String</div> 
    <div class="item">String</div> 
</div> 

Al hacer clic en cada .item div div establece el clic a display: none. Cuando no se muestran divs, quiero que el #main div se establezca también en display :none.

Entonces, ¿cómo puedo detectar que todos los div .items dentro del div #main están en modo 'display: none` usando jQuery?

$(document).ready(function() { 
    $('.item').click(function(){ 
     $(this).hide(); 
    }); 
}); 

Respuesta

8

Utilice la :visible selector:

if (! $('#main > div:visible').length) { 
    $('#main').hide(); 
} 
+0

No estoy seguro de por qué no es pero la condición comprueba 'if (! $ ('# main> div: visible'). length)' no funciona. Pero cuando lo cambié a 'if ($ ('# main> div: visible'). Length == 1)' funciona como cuando hago clic en el último '.item', quiero que el div' 'main' desaparezca . Gracias :) – ptamzz

0

También puede hacer lo siguiente

if(!$('.item').is(':visible')) 
    $('#main').hide();  

Aquí está un ejemplo de trabajo: http://jsfiddle.net/mwGeT/

Cuestiones relacionadas