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');
}
});
我使用以下 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');
}
});