2010-12-15 5 views
5

Como un código de ejemplo, podría tener algo como esto:jQuery - Función de ejecutar en cada elemento excepto la que se ha hecho clic

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

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

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

    }); 

El problema es que yo no quiero que el elemento que se ha hecho clic a animar a 140px de ancho y luego volver a 160px.

¿Hay alguna manera de ejecutar 'cada' solo en los elementos de un conjunto que no fueron seleccionados? ¿O hay un mejor camino?

+2

no sé si eso funciona, pero ¿qué tal: '$ ('a.parent') no ($ (this)) cada uno (...' – BeemerGuy

+0

Saludos para que @BeemerGuy... neto – cfx

Respuesta

21

puede utilizar: no (este) para cambiar:

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

a:

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

o utilizar .no (este) después $ ('a.parent'), por lo que:

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

gracias señor, es ' s realmente una gran ayuda. – GianFS

Cuestiones relacionadas