Javascript jQuery addClass()在某些媒体查询中不起作用

Javascript jQuery addClass()在某些媒体查询中不起作用,javascript,jquery,templates,addclass,squarespace,Javascript,Jquery,Templates,Addclass,Squarespace,如果页面已加载且浏览器窗口介于1100px和640px之间,则以下jQuery脚本可以正常工作: $('#mobileMenu').click(function(){ if ($('body').hasClass('mobile-nav-open')) { $('body').removeClass('mobile-nav-open') } else { $('body').addClass('mobile-nav-open');

如果页面已加载且浏览器窗口介于
1100px
640px
之间,则以下jQuery脚本可以正常工作:

  $('#mobileMenu').click(function(){      
    if ($('body').hasClass('mobile-nav-open')) {
      $('body').removeClass('mobile-nav-open')
    } else {
      $('body').addClass('mobile-nav-open');
    };
  });
这样做的目的是当点击
a#mobileemu
时,一个类被添加到
body
中,移动导航菜单滑入,然后移除该类,再次点击后移动导航菜单关闭


但是,如果页面是在
加载的,而不是在单击时添加/删除类,请尝试下面的方法在
主体上添加/删除类

function addBodyClass(){
    if($(window).width() <= 640){
        $('body').addClass('mobile-nav-open');
    } else {
        $('body').removeClass('mobile-nav-open');
    }
}

$(window).on('load resize', function(){addBodyClass()})
函数addBodyClass(){

if($(window).width()与您的问题无关,但您为什么不直接使用
$(document.body).toggleClass('mobile-nav-open');
而不是
if/else
?@jfriend00抱歉,我没有看到ifcondition@jfriend00仍然不起作用:/但谢谢,我会记住的。谢谢你的解决方案,但我需要它在单击时发生。
function addBodyClass(){
    if($(window).width() <= 640){
        $('body').addClass('mobile-nav-open');
    } else {
        $('body').removeClass('mobile-nav-open');
    }
}

$(window).on('load resize', function(){addBodyClass()})