2009-06-14 7 views
1

Le script ci-dessous fait disparaître la page lors de clics sur des liens ayant class = "nav".Est-ce que 2 classes CSS peuvent activer le même script?

Je voudrais que le script SOIT aussi activé de la même manière pour les liens qui ont class = "home".

Comment le ferais-je? Y at-il une telle chose que $ ('. Nav & .home') ??

Merci

<script type="text/javascript"> 
$('.nav').click(function(){ 
     var url = $(this).attr('href'); 

     $('.mask').fadeIn('medium', function(){ 
      document.location.href = url; 
     }) 
     return false; 
    }); 

}); 

Répondre

10

Vous pouvez simplement utiliser des virgules pour spécifier multiple selectors:

$('.nav, .home').doSomethingToBoth(); 

Une moins connue alternative consiste à utiliser add:

$('.nav').doSomethingToNavs().add('.home').doSomethingToBoth(); 

Je dois aussi ajouter que faire .class Les sélecteurs sont lents. Si vous savez que seuls <a> éléments vont avoir les classes .nav et .home, vous devez écrire votre sélection comme ceci:

$('a.nav, a.home').click(...); 

Sans cette jQuery seront obligés de regarder chaque élément dans le document voir si elle a la classe que vous avez spécifiée, par opposition à la recherche uniquement des éléments <a> avec le getElementsByTagName natif et puis la recherche pour voir si elles ont la classe spécifiée. C'est juste une bonne pratique à garder à l'esprit.

+0

bon conseil sur les classes. – ScottE

0
$(".nav, .home") 
Questions connexes