jquery - jquery 幻灯片处于向上位置后如何删除此类?

标签 jquery slide

我目前为 jQuery 幻灯片设置了以下代码。

$(document).ready(function () {
    $('a#slide-up').click(function () {
        $('.slide-container').slideUp();
        return false;
    });
    $('a#slide-toggle').click(function () {
        if ($('.slide-container').is(':visible')) {
            $('.slide-container').slideUp();
            $(this).removeClass('active');
        } else {
            $('.slide-container').slideDown();
            $(this).addClass('active');
        }
    });
});

和 html:

<a id="slide-toggle"></a>

<div class="slide-container">
     <a id="slide-up"></a>
     >>content<<
</div>

当我单击 #slide-toggle 时,“active”类将应用到它,并且 div.slide-container 向下滑动以显示内容和另一个链接以将容器向后滑动(即 #slide-up)。当我单击 a#slide-up 时,容器会向上滑动,但 a#slide-toggle 仍保持“事件”状态并应用了该类。

我希望这样当我单击#slide-up 时,“事件”类就会被删除。我怎样才能做到这一点?

-编辑-

$(document).ready(function() {
    $('a#slide-up').click(function () {
        $('.slide-container').slideUp(function(){
            $('#slide-toggle').removeClass('active');
        });
        return false;
    });

    $('a#slide-toggle').click(function() {
        if ($('.slide-container').is(':visible')) {
            $('.slide-container').slideUp(function() {
            $(this).removeClass('active');
            }
        })
        else {
            $('.slide-container').slideDown();
            $(this).addClass('active');
        }
    });
});

最佳答案

只需删除 #slide-up 按钮处理程序中的类即可:

$('a#slide-up').click(function () {
    $('.slide-container').slideUp();
    $('#slide-toggle').removeClass('active');
    return false;
});

或者如果您希望它等到动画完成,请在回调中执行此操作:

$('a#slide-up').click(function () {
    $('.slide-container').slideUp(function(){
        $('#slide-toggle').removeClass('active');
    });
    return false;
});
<小时/>

关于您的评论:

$('a#slide-toggle').click(function() {
       // keep a reference to the slide-toggle element
    var slideToggle = this;
    if ($('.slide-container').is(':visible')) {
        $('.slide-container').slideUp(function() {
            $(slideToggle).removeClass('active'); // remove class from slide-toggle
        }); // <-- moved the closing ) to here
    }       // <-- instead of here
    else {
        $('.slide-container').slideDown();
        $(slideToggle).addClass('active'); // add class to slide-toggle
    }
});

关于jquery - jquery 幻灯片处于向上位置后如何删除此类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4964272/

相关文章:

jQuery:如何将类添加到已通过 ajax 插入到 DOM 中的元素

jquery - 如何自定义jquery验证数字格式?

javascript - 使用 jquery animate 的完整选项

javascript - 如何在 Kendo Grid 中添加或更新或删除记录时添加一个隐藏字段?

jquery - 如何垂直动画菜单选项卡?

javascript - 用javascript鼠标位置改变图像?

android - 在 ListView 中单击复选框时,如何使按钮栏从底部滑入?

ios - 在 Launchpad (Mac) 或 iPhone 的主菜单中滑动页面

javascript - 将 Div 滑动到自动高度

jQuery - 向下滑动而不是向上滑动