1

フィドル: http: //jsfiddle.net/vuKqw/60/

「アクティブ」クラスが2回クリックされたときに、アイテムにアタッチされたままになるにはどうすればよいですか?意図された動作は、新しいタブがクリックされたときにのみクラスを変更することです。それ以外の場合、たとえば同じタブを2回クリックしても、アクティブと非アクティブを切り替えずに「アクティブ」のままにする必要があります。

$('nav li a').click(function() {
    $(this).parent().toggleClass('active').siblings().removeClass('active');
});

参照:クリックメニューのJqueryクラスの変更


私はそれを関数に分割することになりました:http: //jsfiddle.net/vuKqw/72/

function tabchange() { 
 var parent = $(this).parent();
    if(!parent.hasClass('active')) {
        parent.addClass('active').siblings().removeClass('active');
}
};

$('nav li a').click(tabchange)​

答えてくれてありがとう@Madbreaks-それは私を正しい方向に向けました。

4

1 に答える 1

2

最初に、親がアクティブであるかどうかを確認します。

$('nav li a').click(function() {
    var parent = $(this).parent();
    if(!parent.hasClass('active')){
        parent.addClass('active').siblings().removeClass('active');
    }
});

「toggleClass」の代わりに「addClass」を使用していることに注意してください。自分が何をしているかを正確に把握している状況では、より具体的にすることをお勧めします(クラスを追加することだけが目的です)。

乾杯

于 2012-08-07T19:31:39.877 に答える