1

このコードのチャンクを編集して、クリックした要素に「アクティブ」クラスを追加し、ナビゲーションの別のアイテムをクリックすると自動的に削除しようとしています...

    var firstTime = true;
    $("#nav a").click(function() {
    var divname = this.name;
    $(this).addClass( "active", "fast", "easeOutBounce" );
    if (!firstTime) {
        if ($(".slid").hasClass(divname)) {
            firstTime = true;
            $(".slid").removeClass("slid").slideUp();
        } else {

            $(".slid").removeClass('slid').slideUp(500, function() {
                $("." + divname).slideToggle().addClass("slid");

            });
        }
    } else {
        $("." + divname).slideDown().addClass("slid");
        firstTime = false;
    }

});

これを機能させるには、どこに.removeClass( "active")を追加する必要がありますか...?

ありがとう

4

3 に答える 3

0

ただそれをしなさい

var firstTime = true;
$("#nav a").click(function() {
var divname = this.name;
//Remove existing 'active' class
$('.active').removeClass('active');
$(this).addClass( "active", "fast", "easeOutBounce" );
[...]
于 2013-03-05T15:59:22.167 に答える
0
var firstTime = true;
    $("#nav a").click(function() {
    var divname = this.name;
    $('#nav a.active').removeClass('active');
    $(this).addClass( "active", "fast", "easeOutBounce" );
    if (!firstTime) {
        if ($(".slid").hasClass(divname)) {
            firstTime = true;
            $(".slid").removeClass("slid").slideUp();
            $('#nav a.active').removeClass('active');
        } else {

            $(".slid").removeClass('slid').slideUp(500, function() {
                $("." + divname).slideToggle().addClass("slid");


            });
        }
    } else {
        $("." + divname).slideDown().addClass("slid");
        firstTime = false;
    }

});
于 2013-03-05T16:00:08.630 に答える
0

それを行う最良の方法は、それがアクティブであるかどうかを確認し、その場合にのみ、アクティブな要素を変更することだと思います。

このようにして、ソリューションのパフォーマンスが向上します。

if (this.className.indexOf('active') == -1) {
    //remove class from actual selected
    var selected = $('#nav a.active');
    selected.removeClass( "active").text('');
    // add class here
    $(this).addClass( "active", "fast", "easeOutBounce" );
    $(this).text('active');
} else {
    $(this).removeClass( "active").text('');
}

ここで機能例を試してください

于 2013-03-05T16:05:24.503 に答える