JS 切换事件触发器无法正常工作
JS toggle event trigger not working correctly
我已经设置了一个响应式菜单,在 480 像素或更小的情况下,菜单会折叠并显示一个按钮以供单击并使菜单下拉。我遇到的问题是,菜单将向下切换并立即切换回来。它不会一直开着。我向名为 .nav-expanded 的 js 处理程序 css 添加了一个 css 以在切换后运行,以允许在将屏幕打开到 480 像素的更大尺寸时显示完整菜单。如果我从样式表中删除 css 或从 js 中删除代码,当我将页面缩小到 480 像素或更小时,新菜单会正确显示,我可以切换打开然后关闭。但是,一旦我切换关闭并扩大浏览器,除非我刷新浏览器,否则菜单将保持隐藏状态。
页面在这里http://skeeterz71.com/gothic/
我的js代码:
jQuery(document).ready(function(){
jQuery(".menu-trigger").click(function(){
jQuery("#first-nav").slideToggle(400, function(){
jQuery(this).toggleClass("nav-expanded").css('display', '');
});
});
});
样式表媒体查询中的 CSS
.nav-expanded{
display:block;
}
CSS 未应用 .nav-expanded
,因为 #first-nav
样式覆盖了它。
要使 .nav-expanded
具有更高的特异性,请添加以下内容
#first-nav.nav-expanded {
display: block;
}
您可以在 jQuery 代码中添加此 css:
jQuery(this).toggleClass("nav-expanded").css('display', 'block');
我已经设置了一个响应式菜单,在 480 像素或更小的情况下,菜单会折叠并显示一个按钮以供单击并使菜单下拉。我遇到的问题是,菜单将向下切换并立即切换回来。它不会一直开着。我向名为 .nav-expanded 的 js 处理程序 css 添加了一个 css 以在切换后运行,以允许在将屏幕打开到 480 像素的更大尺寸时显示完整菜单。如果我从样式表中删除 css 或从 js 中删除代码,当我将页面缩小到 480 像素或更小时,新菜单会正确显示,我可以切换打开然后关闭。但是,一旦我切换关闭并扩大浏览器,除非我刷新浏览器,否则菜单将保持隐藏状态。
页面在这里http://skeeterz71.com/gothic/
我的js代码:
jQuery(document).ready(function(){
jQuery(".menu-trigger").click(function(){
jQuery("#first-nav").slideToggle(400, function(){
jQuery(this).toggleClass("nav-expanded").css('display', '');
});
});
});
样式表媒体查询中的 CSS
.nav-expanded{
display:block;
}
CSS 未应用 .nav-expanded
,因为 #first-nav
样式覆盖了它。
要使 .nav-expanded
具有更高的特异性,请添加以下内容
#first-nav.nav-expanded {
display: block;
}
您可以在 jQuery 代码中添加此 css:
jQuery(this).toggleClass("nav-expanded").css('display', 'block');