【发布时间】:2020-02-14 16:27:57
【问题描述】:
我有一个菜单,当用户单击图标时会打开。当用户单击页面上的其他任何位置时,我希望菜单关闭,但我无法完成该功能。以下是我的 html 和函数:
<div id="header">
<div id="menu">
<div class="menu-container" id="myLinks">
<?php wp_nav_menu(array('container_class' => 'hike-menu', 'theme_location' => 'home-top')); ?>
<?php wp_nav_menu(array('container_class' => 'hike-menu', 'theme_location' => 'hike')); ?>
<?php wp_nav_menu(array('container_class' => 'primary-menu', 'theme_location' => 'primary')); ?>
</div>
<a href="javascript:void(0);" class="icon" onclick="myToggleFunction()" id="toggle-menu">
<span></span>
</a>
</div>
</div>
function myToggleFunction() {
var element = document.getElementById("toggle-menu");
element.classList.add("active");
var x = document.getElementById("myLinks");
if (x.style.width === "290px") {
x.style.width = "0px";
element.classList.remove("active");
} else {
x.style.width = "290px";
}
}
jQuery(document.body).click(function(e) {
if (jQuery("#toggle-menu").hasClass("active") && jQuery("#myLinks").css("width", "290px")) {
jQuery("#myLinks").css("width", "0px");
jQuery("#toggle-menu").removeClass("active");
}
});
当用户点击“toggle-menu”时,菜单打开。 myToggleFunction() 效果很好,但是当我单击菜单之外的任何地方时它会关闭菜单,这就是问题所在。有谁知道我可以如何修改我的功能来实现这一点?
【问题讨论】:
标签: javascript jquery css menu