Jquery 单击div时添加类

Jquery 单击div时添加类,jquery,sidebar,expand,collapse,Jquery,Sidebar,Expand,Collapse,我试图制作一个带有导航菜单的边栏,当我点击一个div时,它会展开/折叠 $(document).ready(function() { $('.btn-nav').click(function(){ $('.sidebar').addClass('expand'); }, function(){ $('.sidebar').removeClass('collapse'); }); }); 当我将click函数替换为hove

我试图制作一个带有导航菜单的边栏,当我点击一个div时,它会展开/折叠

$(document).ready(function() {     
$('.btn-nav').click(function(){     
    $('.sidebar').addClass('expand');    
},     
function(){    
    $('.sidebar').removeClass('collapse');     
});
}); 
当我将click函数替换为hover函数时,它可以正常工作。但现在它不起作用了。有人知道我做错了什么吗?

你需要这样做:

$(document).ready(function () {
    $('.btn-nav').click(function () {
        $('.sidebar').toggleClass('expand').toggleClass('collapse');
    });
});

如果查看,您会发现它只使用一个函数,而使用一个或两个处理程序函数,在鼠标指针进入和离开元素时执行。

单击事件没有参数。您可以使用下面的代码

$(document).ready(function() {
    var testMethod = function(event){
        if(event.data.flg == 0){
             $('.sidebar').addClass('expand');
             event.data.flg=1;
        }
        else {
            $('.sidebar').removeClass('collapse'); 
            event.data.flg=0;
        }
    };


    $('.btn-nav').on('click', {flg: 0}, testMethod);
}); 

Click接受一个函数,而不是两个。或
$('.sidebar')。toggleClass('expand-collapse')