35

このフィドルを見てください。

クリックされた li 要素のクラスを追加および削除しようとしています。これはメニューであり、各liアイテムをクリックするとクラスが取得され、他のすべてのliアイテムはクラスが削除されます。そのため、一度にクラスを持つ li アイテムは 1 つだけです。これが私が得た距離です(フィドルを参照)。「about-link」を現在のクラスで開始する方法がわかりませんが、他のli項目の1つをクリックすると削除されますか?

$('#about-link').addClass('current');
$('#menu li').on('click', function() {
    $(this).addClass('current').siblings().removeClass('current');
});
4

8 に答える 8

5

他の li 要素は a 要素の兄弟ではありません。

$('#menu li a').on('click', function(){
    $(this).addClass('current').parent().siblings().children().removeClass('current');
}); 
于 2013-10-22T14:27:19.953 に答える
3

クラスを<a>要素に適用していますが、要素はそれぞれ要素に囲まれているため、兄弟ではありません<li>。ツリーを親に移動し、<li>そのレベルの兄弟で ` 要素を見つける必要があります。

$('#menu li a').on('click', function(){
$(this).addClass('current').parent().siblings().find('a').removeClass('current');
});

この更新されたフィドルを参照してください

于 2013-10-22T14:27:27.360 に答える
2

サイトの Head セクションでこれを試してください。

$(function() {
    $('.menu_box_list li').click(function() {
        $('.menu_box_list li.active').removeClass('active');
        $(this).addClass('active');
    });
});
于 2014-05-22T09:34:02.933 に答える
0
var selector = '.classname';
$(selector).on('click', function(){
    $(selector).removeClass('classname');
    $(this).addClass('classname');
});
于 2018-05-04T06:05:08.547 に答える