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

我认为最好的方法是检查它是否处于活动状态,只有在这种情况下,才更改活动元素。

这样,您的解决方案将更加高效。

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 回答
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 回答