Toggle class 第二次点击后不会关闭我的侧边栏

Toggle class will not close my sidebar after clicking the second time

我使用以下 jQuery 在 class 之间切换。点击toggle-sidebar时会添加open,关闭页面中的其他侧边栏,但我想关闭侧边栏时,第二次点击无法关闭当前侧边栏。

我的代码:

$('.toggle-sidebar').click(function(event) {
            event.preventDefault();
            $('section aside').removeClass('open');
            $(this).parent().find('aside').toggleClass('open');
        }); 

所以:

$('section aside').removeClass('open');

从所有 aside 中删除 open class,甚至从当前删除。所以它现在没有 open class。

还有这个

$(this).parent().find('aside').toggleClass('open');

open class 添加到当前 aside。所以你实际上没有从当前 aside.

中删除 open class 的代码

我认为您应该检查:如果当前 aside 已打开 class - 然后仅将其删除,否则 - 添加并从其他 aside 中删除。有点:

$('.toggle-sidebar').click(function(event) {
    event.preventDefault();
    var aside$ = $(this).parent().find('aside');
    if ( aside$.hasClass('open') ) {
        aside$.removeClass('open');
    } else {
        $('section aside').removeClass('open');
        aside$.addClass('open');
    }
});