2010-12-15 5 views
5

Comme quelques exemples de code, je pourrais avoir quelque chose comme ceci:jquery - fonction d'exécution sur chaque élément, sauf celui qui a été cliqué

$('a.parent').click(function(){ 

     $('a.parent').each(function(){ 
      $(this).stop(true,false).animate({ 
       width: '140px' 
      },200,function(){ 
      }); 
     }); 

     $(this).animate({ 
      width: '160px' 
     },200,function(){ 
     }); 

    }); 

Le problème est que je ne veux pas l'élément qui a été cliqué à animer à 140px largeur, puis de nouveau à 160px.

Existe-t-il un moyen d'exécuter 'each' uniquement sur les éléments d'un ensemble qui n'ont pas été cliqués? Ou y a-t-il un meilleur moyen?

+2

Je ne sais pas si cela fonctionne, mais que diriez-vous: '$ ('a.parent') non ($) (ce) chacun (...' – BeemerGuy

+0

Vive que @BeemerGuy... net – cfx

Répondre

21

vous pouvez utiliser: non (cela) donc changer:

$('a.parent').each(function(){ 
      $(this).stop(true,false).animate({ 
       width: '140px' 
      },200,function(){ 
      }); 
     }); 

à:

$('a.parent:not('+this+')').each(function(){ 
      $(this).stop(true,false).animate({ 
       width: '140px' 
      },200,function(){ 
      }); 
     }); 

ou utilisez .pas (ce) après $ ('a.parent'), de sorte que:

$('a.parent').not(this).each(function(){ 
       $(this).stop(true,false).animate({ 
        width: '140px' 
       },200,function(){ 
       }); 
      }); 
+0

merci monsieur, il ' s vraiment une grande aide. – GianFS

Questions connexes