2012-04-09 5 views
5

Вот то, что я до сих пор: enter image description herejQuery Добавить класс по клику, но разрешено только один раз.

Javascript:

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

Так что это работает, это добавляет класс, но я хочу только один пункт, чтобы быть активным во все времена. Поэтому, когда я нажимаю на элемент, и он становится активным, следующий элемент, который я нажимаю, должен быть новым активным, и удалять класс на предыдущем.

Это имеет смысл? Как я могу сделать что-то подобное?

Спасибо!

ответ

11

Вы должны сначала удалить класс active из ваших thumb_wrapper элементов. Попробуйте следующее:

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

Большое спасибо! – Drew

0

Это должно быть сделано.

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

Cache Ваша обертка и вызвать removeClass() на него первым:

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

Я полагаю, что-то вроде этого?

Смежные вопросы