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()})