我有一个导航,隐藏子导航菜单.nav-sub-wrapper
当调整大小的平板电脑/手机。问题在于,通过这个特定的jQuery来隐藏调整大小的菜单,当点击菜单(.hamburger
)图标时,它将禁用移动/平板设备上显示的菜单。如何启用菜单点击时,隐藏格为响应式布局
如何启用.hamburger
菜单触发.nav-sub-wrapper
类在点击时显示?
if($(window).width() <= '768'){
$(".nav-sub-wrapper, .desktop-search-box").hide();
$(".hamburger").on('click', function(){
if($(".logo-link").css("display") == 'none'){
$(".hamburger").addClass("hamburger-active");
}
$('.list-header').trigger('click');
$(".nav-sub-wrapper").toggle();
$(".search").show();
});
}
//used to hide nav on resize//
function navHidden() {
if ($(window).width() <= 768) {
$(".nav-sub-wrapper").hide();
$(".hamburger").on('click', function() {
$(".nav-sub-wrapper").toggle();
});
} else {
$(".nav-sub-wrapper").show();
}
}
$(window).resize(function() {
navHidden();
});
$(document).ready(function() {
navHidden();
});
感谢您的反馈意见。为了澄清你的意思,你的意思是我应该在第3-10行删除第一个绑定到'.hamburger'的事件处理程序,并将hide函数移动到你提供的if语句中? – user3438917
您不必从代码中删除第一个事件处理程序绑定,只需确保在声明“on”之前使用“off”即可。如果绑定到.hamburger的click函数已经设置在其他地方,它将清除绑定,如果不是,它将不会执行任何操作,并且您的代码将按照已经执行的操作。使用你给出的代码,没有任何重构的考虑,我可能会在你使用它们各自的条件进行绑定之前调用.off。 – VerbGarden
我发现调整大小功能实际上是禁止点击'.hamburger'图标时出现在平板电脑上的某些功能。 '.search'图标不显示在平板电脑上,但在移动设备上显示。另外,当调整大小以正确使用导航时,我必须刷新页面。 将窗口展开到桌面时,我无法通过'.search'图标访问菜单,而无需刷新页面。 我已经包含了所有JS的小提琴,希望能让这个更清晰。有很多JS,但我已经评论过重要的章节。 https://jsfiddle.net/707e8cnv/ – user3438917