2012-04-09 11 views
5

Esto es lo que tengo hasta ahora: enter image description herejQuery Agregar clase al hacer clic, pero solo se permite una vez.

Javascript:

$(document).ready(function() { 
    $(".thumb_wrapper").click(function() { 
     $(this).addClass("active"); 
    }); 
}); 

Así que esto está funcionando, es la adición de la clase pero quiero solamente un artículo para estar activo en todo momento. Por lo tanto, cuando hago clic en un elemento y se activa, el siguiente elemento en el que hago clic debe ser el nuevo activo y eliminar la clase en el anterior.

¿Eso tiene sentido? ¿Cómo puedo hacer algo como esto?

Gracias!

Respuesta

11

Primero debe eliminar la clase active de sus elementos thumb_wrapper. Prueba esto:

$(".thumb_wrapper").click(function() { 
    $(".thumb_wrapper").removeClass("active"); 
    $(this).addClass("active"); 
}); 
+0

¡Muchas gracias! – Drew

0

Esto debe hacerlo.

$(document).ready(function() { 
    $(".thumb_wrapper").click(function() { 
     $(this).parent().children().each(function() { 
      $(this).removeClass("active"); 
     }); 
     $(this).addClass("active"); 
    }); 
}); 
3

caché de su envoltorio y llame a un removeClass() en ella en primer lugar:

var $wrapper = $(".thumb_wrapper"); 

$wrapper.click(function() { 
    $wrapper.removeClass("active"); 
    $(this).addClass("active"); 
}); 
1
$(".thumb_wrapper").on('click', function() { 
    $(".thumb_wrapper").removeClass('active').find(this).addClass("active"); 
}); 
0
$(document).ready(function(){ 
    $('.what').click(function(){ 
     $('.what').removeClass('active'); 
     $(this).addClass('active');  
    });  
}); 

Asumo algo como esto?

Cuestiones relacionadas