2010-09-08 15 views
3

J'essaie de trouver un moyen de savoir si une couche est affichée ou nonsavoir si la couche est css bloc jquery

if ($('.property > .evenprop').css('display','block')){ 
    $('.otherprop').show(); 
    } 
    else { 
    $('.otherprop').hide(); 
    } 

donc quelque chose comme si cela est vrai

<div class="property"> 

<div class="evenprop" style="display:block">blah</div> 

</div> 

montrent ensuite cette couche

<div class="otherprop">blahblah</div> 

$('.otherprop').show(); 

Sinon, si cela est vrai

<div class="property"> 

<div class="evenprop" style="display:none">blah</div> 

</div> 

cacher ensuite cette couche

<div class="otherprop">blahblah</div> 

$('.otherprop').hide(); 

peut sembler ne pas obtenir ce travail si des idées?

Merci

Jamie

Répondre

6

Vous êtes à la recherche de la :visible pseudo-classe.

if ($('.property > .evenprop').is(':visible')){ 
    $('.otherprop').show(); 
} else { 
    $('.otherprop').hide(); 
} 

ci-dessus peut être réduite à

$('.otherprop').toggle($('.property > .evenprop').is(':visible')); 
+0

Merci qui a été frire mon cerveau toute la nuit! –

0

$('.property > .evenprop').css('display','block') définira le CSS. Si vous devez vérifier l'utilisation :visible sélecteur

Vous pouvez utiliser quelque chose comme ceci:

if($('.property > .evenprop :visible').size!=0)

0

Cela fonctionnerait aussi:

if ($('.property > .evenprop').css('display') == 'block'){ 
    //... 
}