3

css、javascriptを使用してアクティブなクラスを追加/削除することにより、強調表示されている現在の画像を強調表示しようとしています。

ソリューションをjsfiddleにアップロードしました。ご覧ください。これの何が悪いのかを本当に理解しようとしています。 http://jsfiddle.net/BEmXZ/39/

HTML

<div class="container-thumbs">
    <div><a><img src=".jpg" /></a></div>
    <div><a class="active"><img src=".jpg" /></a></div> 
    <div><a><img src=".jpg" /></a></div>
</div>

Javascript

var make_button_active = function() {
    //Get item siblings
    var siblings =($(this).siblings());
    //Remove active class on all buttons
    siblings.each(function (index) {
            $(this).removeClass('active');
        }
    );

    //Add the clicked button class
    $(this).addClass('active');
}   

$(document).ready(function() {
    $(".container-thumbs a").click(make_button_active);
});

CSS

.container-thumbs{
    width: 300px; height: 25; font-size: 18px;
}
.container-thumbs a{
    list-style: none; float: left; margin-right: 4px; padding: 5px;
}
.container-thumbs div a:hover, .container-thumbs div a.active {
    background-color: #f90;
}​
4

3 に答える 3

5

siblingsアンカーはdivでラップされているため、機能しません。試す:

var make_button_active = function() {
    $(".container-thumbs a").removeClass("active");
    $(this).addClass("active");
}

$(document).ready(function() {
    $(".container-thumbs a").click(make_button_active);
});​

デモ。(あなたがあなたのものを投稿していなかったので、新しいフィドル)

于 2012-11-30T11:42:20.900 に答える
4

このコードを試してください:

クリックすると、すべての画像からアクティブなクラスが削除され、現在の画像に適用されます。make_button_activeまた、機能は全く必要ないと思います。

$(document).ready(function() {
    $(".container-thumbs a").click(function(){
         $(".container-thumbs a").removeClass("active");
         $(this).addClass("active");
    });
});​

デモ

于 2012-11-30T11:43:15.630 に答える
1

コードをこれに変更すると、少なくとも機能します。

 var make_button_active = function()
{
  //Get item siblings

  var siblings = $(".container-thumbs a");      
  siblings.each(function (index)
{
  $(this).removeClass('active');
}
);
  $(this).addClass('active');
}   

 $(document).ready(function() {
$(".container-thumbs a").click(make_button_active);

});

于 2012-11-30T11:50:56.283 に答える