Javascript 打开和关闭导航

Javascript 打开和关闭导航,javascript,jquery,css,class,Javascript,Jquery,Css,Class,我有一个简短的JS代码,可以添加和删除一个类。问题是,它添加了一个类,但从不删除它。我找不到问题。它应该通过单击相同的按钮来添加和删除类 $('.hamburger').on('click', function(){ if (!$(this).hasClass('opened')){ $(this).addClass('.opened'); $('.pop').css({'width' : '550px'}); $('.main').css

我有一个简短的JS代码,可以添加和删除一个类。问题是,它添加了一个类,但从不删除它。我找不到问题。它应该通过单击相同的按钮来添加和删除类

$('.hamburger').on('click', function(){
    if (!$(this).hasClass('opened')){
        $(this).addClass('.opened');
        $('.pop').css({'width' : '550px'});
        $('.main').css({'margin-right' : '550px'});
    }
    else{
        $(this).removeClass('opened');
        $('.pop').css({'width' : '0'});
        $('.main').css({'margin-right' : '0'});
    }
});

尝试使用Jquery的toggleClass方法,它将添加或删除类

$('.hamburger').on('click', function(){
      $(this).toggleClass("main");
});

尝试使用Jquery的toggleClass方法,它将添加或删除类

$('.hamburger').on('click', function(){
      $(this).toggleClass("main");
});

您无需将点添加到传递给$(this.addClass)的类字符串中,因此它应该是:

$(this).addClass('opened');

您无需将点添加到传递给$(this.addClass)的类字符串中,因此它应该是:

$(this).addClass('opened');
删除
$(this.addClass('.opened')中的“;=>$(此).addClass(“打开”)

对于样式类,还可以使用切换类()

删除
$(this.addClass('.opened'))中的“.”$(此).addClass(“打开”)


对于样式类,您还可以使用切换类()

它,因为您添加了“.opened”而不是opened

也许可以看看切换函数来清理代码。此外,在每次运行时重新蚀刻元素也没有意义

希望这能给你一个关于如何清理和减少重复的好主意

const pop=$('.pop'),
main=$('.main'),
火腿=$('汉堡');
火腿(点击,切换汉堡);
函数toggleHamburger(){
toggleMainStyles(!ham.hasClass('opened')?'550px':0);
}
函数切换主样式(值=0){
css({width:value});
css({marginRight:value});
ham.toggleClass(“打开”);
}
。汉堡包{
颜色:蓝色;
}
.打开{
颜色:红色;
}

火腿

这是因为您添加了“.opened”而不是opened

也许可以看看切换函数来清理代码。此外,在每次运行时重新蚀刻元素也没有意义

希望这能给你一个关于如何清理和减少重复的好主意

const pop=$('.pop'),
main=$('.main'),
火腿=$('汉堡');
火腿(点击,切换汉堡);
函数toggleHamburger(){
toggleMainStyles(!ham.hasClass('opened')?'550px':0);
}
函数切换主样式(值=0){
css({width:value});
css({marginRight:value});
ham.toggleClass(“打开”);
}
。汉堡包{
颜色:蓝色;
}
.打开{
颜色:红色;
}

火腿

您的欢迎如果对您有帮助,请将此答案添加到正确的标签上,以便帮助他人:)您的欢迎如果对您有帮助,请将此答案添加到正确的标签上,以便帮助他人:)