2010-07-23 4 views
0

Je tente une conception d'une page en utilisant des charges de jQuery. J'ai quelques éléments de navigation principaux et selon ce qui est cliqué, différents divs sont montrés ou cachés. Par exemple le code html:Vérifiez si les divs sont visibles avec jQuery

<div class="box a"> 
    <div class="inner"> 
     <a class="boxLink circle black" href="#">Link a</a> 
    </div> 
</div> 
<div class="box a1 hidden"> 
    <div class="inner circle"> 
     <a class="boxLink" href="#">a1</a> 
    </div> 
</div> 
<div class="box a2 hidden"> 
    <p class="green">a2</p> 
</div> 
<div class="box b"> 
    <div class="inner"> 
     <a class="boxLink circle black" href="#">Link b</a> 
    </div> 
</div> 
<div class="box b1 hidden"> 
    <div class="inner circle"> 
     <a class="boxLink" href="#">b1</a> 
    </div> 
</div> 
<div class="box b2 hidden"> 
    <p class="green">b2</p> 
</div> 

et jQuery

$(".a").click(function(){ 
    $('.b').hide(); 
    $('.b1').hide(); 
    $('.b2').hide(); 
    $('.a1').slideDown({ 
     duration:500, 
     complete:function(){ 
      $('.a2').slideDown('1000'); 
     } 
    }); 
    return false 
}); 

$(".b").click(function(){ 
    $('.a').hide(); 
    $('.a1').hide(); 
    $('.a2').hide(); 
    $('.b1').slideDown({ 
     duration:500, 
     complete:function(){ 
      $('.b2').slideDown('1000'); 
     } 
    }); 
    return false 
}); 

Quelle est une meilleure façon plus efficace d'écrire ceci et vérifier si divs indésirables sont visibles? J'ai lu this solution mais j'espère garder cela comme des blocs div et non comme une liste.

Répondre

-1

bien vous pouvez faire tout le cacher dans une déclaration, comme:

$('.b, .b1, b2').hide(); 

autre que cela, je ne suis pas sûr que je vois pourquoi vous avez besoin de vérifier la visibilité? Vous pouvez masquer des éléments déjà cachés w/o question

Je voudrais aussi ne le glissement de façon plus concise comme:

$('.a1').slideDown(500, function() { 
    $('.a2').slideDown(1000); 
}); 
9

.is(':visible') pour un contrôle très simple. retourne un booléen.

+0

merci, est-ce encore nécessaire? ou est-ce que ce serait la même chose que moi disant juste cacher même s'ils sont déjà cachés? – Zac

1

Vous pouvez appeler cacher et les méthodes montrent même sur des éléments qui sont déjà dans l'état souhaité.

$ ('# abc'). (Cacher) cachera #abc sinon caché, et ne rien faire si elle est

va de même pour .show().

Donc je suppose qu'il n'y a pas besoin de Sanity Check pour les éléments déjà cachés

Questions connexes