单击后隐藏导航菜单
Hide navigation menu after click
我构建了一个运行良好的导航菜单,但在鼠标移出下拉菜单之前,它一直保持打开状态。
我已经有一个功能,当我们在菜单中选择某个内容时,它会在另一个<div>
(otherDiv(中显示内容,同时我正试图让它隐藏菜单。
function go(obj) {
var page = obj.href;
document.getElementById('otherDiv').innerHTML = '<img src="' + page + '"></img>'
return false;
document.getElementById('menu1').style.display = "none";
document.getElementById('menu2').style.display = "none";
document.getElementById('menu3').style.display = "none";
document.getElementById('menu4').style.display = "none";
document.getElementById('menu5').style.display = "none";
document.getElementById('menu6').style.display = "none";
}
.drpbtn {
display: inline-block;
color: #ffffff;
text-align: center;
padding: 12px 25px;
list-style-type: none;
width: auto;
margin: 0;
background-color: #403e3e;
color: #ffffff;
float: left;
font-family: arial;
font-size: 14px;
}
.drpbtn:hover {
background-color: #00b3be;
}
.drpbtn:hover .dropdown-content {
display: inline-block;
}
.dropdown-content {
display: none;
list-style-type: none;
position: absolute;
background-color: #fafafa;
width: 290px;
color: #000000;
text-align: left;
margin-left: -4.7em;
margin-top: 0.89em;
}
.dropdown-content li:hover {
background-color: #e1e1e1;
}
.dropdown-content li {
display: block;
}
.li-drop {
display: inline-block;
color: #000000;
text-align: left;
padding: 11px 13px;
text-decoration: none;
margin: auto;
}
<div id="menu">
<ul>
<li class="drpbtn">Menu 1
<ul id="menu1">
<div class="dropdown-content">
<li class="li-drop">
<a href="url" onclick="return go(this);">
<div class="div-drop">Choice 1</div>
</a>
</li>
<li class="li-drop">
<a href="url" onclick="return go(this);">
<div class="div-drop">Choice 2</div>
</a>
</li>
<li class="li-drop">
<a href="url" onclick="return go(this);">
<div class="div-drop">Choice 3</div>
</a>
</li>
</div>
</ul>
</li>
<li class="drpbtn">Menu 2
<ul id="menu2">
<div class="dropdown-content">
<li class="li-drop">
<a href="url" onclick="return go(this);">
<div class="div-drop">Choice 1</div>
</a>
</li>
<li class="li-drop">
<a href="url" onclick="return go(this);">
<div class="div-drop">Choice 2</div>
</a>
</li>
<li class="li-drop">
<a href="url" onclick="return go(this);">
<div class="div-drop">Choice 3</div>
</a>
</li>
</div>
</ul>
</li>
<li class="drpbtn">Menu 3
<ul id="menu3">
<div class="dropdown-content">
<li class="li-drop">
<a href="url" onclick="return go(this);">
<div class="div-drop">Choice 1</div>
</a>
</li>
<li class="li-drop">
<a href="url" onclick="return go(this);">
<div class="div-drop">Choice 2</div>
</a>
</li>
<li class="li-drop">
<a href="url" onclick="return go(this);">
<div class="div-drop">Choice 3</div>
</a>
</li>
</div>
</ul>
</li>
</ul>
</div>
你能帮我修一下吗?
function go(obj) {
var page = obj.href;
document.getElementById('otherDiv').innerHTML = '<img src="' + page + '"></img>'
document.getElementById('menu1').style.display = "none";
document.getElementById('menu2').style.display = "none";
document.getElementById('menu3').style.display = "none";
document.getElementById('menu4').style.display = "none";
document.getElementById('menu5').style.display = "none";
document.getElementById('menu6').style.display = "none";
return false;
}
我相信你回来的地方不对。如果您在函数的中间返回,那么之后将不会执行任何操作。你的代码应该和我上面的一样。
好吧。。。如果您使用的是jquery,这里是一个如何在菜单外单击一次后隐藏导航菜单的示例。只需使用id="menu"
将class="menu"
添加到您的<div>
中,尝试该示例并基于父类名称构建您自己的逻辑。。。
<script>
$(document).click(function (e) {
var $e = $(e.target);
if (!$e.parents().hasClass('menu')) {
$('.menu').css({ 'display': 'none' });
}
});
</script>
相关文章:
- 如何在angularjs中进行简单的菜单导航
- jQuery circle菜单导航在切换关闭后创建小圆圈
- 垂直菜单/导航 - WordPress/JSFiddle.
- 垂直菜单/导航自动滚动
- jQuery增加了菜单导航的延迟,可用性
- Ionic:带有选项卡和侧菜单导航问题的主详细信息
- Jquery:选项卡式菜单导航,根据所选菜单激活和停用
- 防止在菜单/导航系统的特定屏幕宽度下触发 jQuery 函数
- 菜单导航不适用于 jquery 日期选择器
- 引导侧菜单导航问题
- 从左侧的推送菜单导航中滑出
- 从引导导航栏下拉菜单导航到角度页面模板
- CSS-需要帮助弄清楚我的下拉菜单导航哪里出了问题
- 子菜单导航切换错误
- 我的Bootstrap模式锚不是从一个菜单(导航栏)的行项目内工作
- Jquery手风琴菜单-导航到新页面时保持打开状态
- 双引导菜单's导航条固定顶部
- 如何从浏览器中的菜单导航到不同的页面
- 如何在滚动后自动更改活动菜单(菜单导航)?
- 突出显示重复的