繁体   English   中英

jQuery click事件在切换侧栏时仅工作一次

[英]jQuery click event works only once while toggling the sidebar

我正在尝试切换侧边栏,但是它只能工作一次。 我认为查询代码是不言自明的。 虽然我可以根据需要编写HTML代码。

    $('.side-menu').on('click', function(){
        $('.control-sidebar').addClass('active-sidebar');
        $('.side-menu').on('click', function(){
            $('.control-sidebar').removeClass('active-sidebar');
        });
    });

干净的代码解决方案看起来像这样:

$('.side-menu').on('click', function(){
    $('.control-sidebar').toggleClass('active-sidebar');
});

我认为您的情况逻辑不正确。

if(!$('.control-sidebar').hasClass('active-sidebar')){...}

当类“ control-sidebar”没有类“ active-sidebar”时,此代码将运行。

在一开始,这种情况就发生了,因此您可以单击.side-menu并将类“ active-sidebar”添加到DOM。 这违反了您的第一个逻辑。

此外,为什么这在您的代码中发生两次?

$('.side-menu').on('click', function(){...}

解决方案:使用切换类:请参阅此https://jsfiddle.net/BeklievParviz/rwnpk0wm/

$('.side-menu').on('click', function(){
    $('.control-sidebar').toggleClass('active-sidebar');
});

用户此

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM