我有一个导航菜单,当点击一个特定按钮时,会打开一个菜单。
功能如下;
单击按钮,按钮变为“X”关闭按钮,导航栏将展开以显示菜单。然后,您可以单击菜单中的链接或单击“x”关闭按钮,导航菜单将关闭。
这一切都很好 - 我遇到的问题是,当点击一个链接时,菜单关闭,然后如果你尝试通过点击打开按钮再次打开菜单,菜单就消失了,而不是回来。
此外,我还是jQuery的新手,我知道我的代码可能是一个可怕的混乱。
这是我的jQuery。预警:我很抱歉&是的我很惭愧
$(function() {
$('a[href*="#"]:not([href="#"])').click(function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
if (target.length) {
$('html, body').animate({
scrollTop: target.offset().top
}, 1000);
return false;
}
}
});
});
$('.mobile-nav-icon').click(function() {
$('.fa').toggleClass('fa-times fa-bars');
$('.nav').toggleClass('hundredvh', 'noheight');
});
$('.linx').click(function(event){
$('.nav').removeClass('hundredvh');
$('.fa').addClass("fa-bars");
$('.fa').removeClass("fa-times");
$('.menu').addClass("noheight");
});
答案 0 :(得分:2)
删除此行:
$('.menu').addClass("noheight");
您设置的.menu
链接中没有高度(.nav
类有overflow: hidden;
),然后永远不会删除该类。我没有看到在这里添加它的目的,所以你可以完全删除这个类。
请参阅此更新fiddle
答案 1 :(得分:0)
回到此处 - 在CSS中设置.nav的高度&我的问题解决了。