5

これが私がこれまでに持っているものです: ここに画像の説明を入力

Javascript:

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

これは機能しており、クラスを追加していますが、常にアクティブにするアイテムは1つだけにしたいです。したがって、アイテムをクリックしてアクティブにすると、次にクリックしたアイテムが新しいアクティブアイテムになり、前のアイテムのクラスが削除されます。

それは理にかなっていますか?どうすればこのようなことができますか?

ありがとう!

4

5 に答える 5

13

最初に要素activeからクラスを削除する必要があります。thumb_wrapperこれを試して:

$(".thumb_wrapper").click(function() {
    $(".thumb_wrapper").removeClass("active");
    $(this).addClass("active");
});
于 2012-04-09T15:40:01.067 に答える
3

ラッパーをキャッシュremoveClass()し、最初にa を呼び出します。

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

$wrapper.click(function() {
    $wrapper.removeClass("active");
    $(this).addClass("active");
});
于 2012-04-09T15:40:55.803 に答える
1
$(".thumb_wrapper").on('click', function() {
    $(".thumb_wrapper").removeClass('active').find(this).addClass("active");
});
于 2012-04-09T15:43:01.733 に答える
0
$(document).ready(function(){
    $('.what').click(function(){
        $('.what').removeClass('active');
        $(this).addClass('active');       
   });       
});

私はこのようなものを想定していますか?

于 2012-04-09T15:43:14.303 に答える
0

これでうまくいくはずです。

$(document).ready(function() {
    $(".thumb_wrapper").click(function() {
        $(this).parent().children().each(function() { 
             $(this).removeClass("active");
         });
         $(this).addClass("active");
     });
});
于 2012-04-09T15:40:38.583 に答える