2

このようなリストがあるとしましょう...

<ul>
  <li class="one">One</li>
  <li class="two">Two</li>
  <li class="three">Three</li>
</ul>

...そして私はliのクラスを切り替えることができるようにしたいです...

$( "li" ).click(function() {
    $( "li" ).toggleClass( "active" );
});

..また、クリックされたものを除いて、「。active」liのtoggleClass機能を維持しながら、「。active」として表示されないようにしたいです。

だから私は、クリックされたものを除いて、他のliからClassを削除したいと思っていました。どうすればそれができるのかわかりませんが...

そのようなことを達成する方法について何かアイデアはありますか?かなり簡単だと思いますが、jQueryは初めてなのでわかりません。

解決済み-誰かがそれを見たい場合..そこに行きます: http: //jsfiddle.net/6jm2s/17/ これも... http://jsfiddle.net/6jm2s/18/

両方の答えは完璧に機能します..@jondavidjohn&@hunterありがとうございます...残念ながら両方の答えにチェックマークを付けることはできません...しかし、ハンターのコードが短いので、ハンターにチェックマークを付けさせます.. :)

4

2 に答える 2

11

何かがアクティブになると、常にアクティブになるようにします。

$("li:not(.active)").live("click", function() {
    $(this).addClass("active");
    $(this).siblings().removeClass("active");
});

liまだアクティブになっていないにのみ焦点を当てます。


非アクティブ化できるようにするには:

$("li").click(function() {
    $(this).toggleClass("active");
    $(this).siblings().removeClass("active");
});

実例: http: //jsfiddle.net/6jm2s/18/

于 2011-02-04T18:32:33.857 に答える
5
$( "li" ).click( function() {
    if( $(this).is('.active') ) {
        $(this).removeClass( "active" );
    }
    else {
        $( "li.active" ).removeClass( "active" );
        $(this).addClass( "active" );
    }
});
于 2011-02-04T18:29:24.023 に答える