2012-04-09 13 views
5

Ecco quello che ho finora: enter image description herejQuery Aggiungi classe su clic ma solo una volta.

Javascript:

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

Quindi questo sta lavorando, è l'aggiunta della categoria, ma voglio solo un elemento di essere attivo in ogni momento. Quindi quando clicco su un oggetto, e diventa attivo, l'elemento successivo su cui clicco dovrebbe essere il nuovo attivo e rimuovere la classe sul precedente.

Ha senso? Come posso fare qualcosa di simile?

Grazie!

risposta

11

È necessario rimuovere prima la classe active dagli elementi thumb_wrapper. Prova questo:

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

Grazie mille! – Drew

0

Questo dovrebbe farlo.

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

Cache avvolgitori e chiamare un removeClass() su di esso prima:

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');  
    });  
}); 

Presumo che qualcosa di simile?

Problemi correlati