当相对div活跃时,Jquery更改类

时间:2015-05-31 01:00:27

标签: javascript jquery html css

所以我有一些菜单触发器(hamburger)的功能,可以打开和关闭侧边栏菜单,并在此过程中将其形状从三行更改为X(标准),这是一个名为active的类的形式..

这是代码......

$(document).ready(function () {
    var $navToggle = $('.nav-toggle');
    $(".navbtn").click(function () {
        if($navToggle.hasClass('active')){
            $('#menu').multilevelpushmenu('collapse');
            $navToggle.removeClass('active');
            $(this).addClass('active');
        }
        else{
            $('#menu').multilevelpushmenu('expand');
            $navToggle.addClass('active');
            $(this).removeClass('active');
        }
    });

    //ALLOWS CLICK ON THE BODY TO CLOSE THE MENU//
    $(":not(#menu)").click(function(){
        $( '#menu' ).multilevelpushmenu( 'collapse' );
        $('.nav-toggle').removeClass('active');
           $(this).addClass('active');   
    });
});

我似乎无法获得"允许点击身体"工作的功能,可能是因为他们与上面的其他两个功能混淆了......有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

这不是我的答案,但我希望早些时候评论的人能够获得信用而不是投票给我,我想确保正式帮助他人......他确实得到了答案,这就是它的方式....

$('body').on('click', function(e){
 if( !$(this).closest('#menu').length) {
    $('#menu').multilevelpushmenu('collapse');
        event.stopPropagation();        

            };


});

答案 1 :(得分:0)

假设您的身体内容包裹了某种类型的容器。您只需将click函数添加到容器中即可。

实施例。

$(".container").click(function(){
        $( '#menu' ).multilevelpushmenu( 'collapse' );
        $('.nav-toggle').removeClass('active');
           $(this).addClass('active');   
    });