如何隐藏下拉菜单,如果我点击身体任何元素
how to hide dropdown menu if i click body any element?
如果我单击外部下拉菜单的主体元素,如何关闭我的下拉菜单。
请给我建议。我的代码是
$(document).ready(function(){
$(document).on('click', '.top-nav-head>li>a', function(){
$(this).siblings('ul').toggle().closest('.top-nav-head>li').siblings('li').find('ul').hide();
});
});
.top-nav-head{
list-style-type: none;
padding: 0;
margin: 0;
background:blue;
float: left;}
.top-nav-head>li{
float: left;
position: relative;
}
.top-nav-head>li > a{
color: #000;
padding: 0 10px;
display: block;
line-height: 40px;
font-size: 14px;
}
.top-nav-head>li > ul{
position: absolute;
display: none;
top: 100%;
left: 0;
min-width: 140px;
right: 0;
list-style-type: none;
padding: 5px 0 5px 0;
margin: 0;
background-color: red;
}
.top-nav-head>li > ul>li{
display: block;
}
.top-nav-head>li > ul>li > a{
display: block;
color:@white;
padding: 5px 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<ul class="top-nav-head">
<li><a href="#">Home</a></li>
<li class="active">
<a href="#">Admin Module</a>
<ul>
<li><a ui-sref="av-kw-questions.empty">Questions</a></li>
<li><a ui-sref="av-wbs">WBS Elements</a></li>
<li><a ui-sref="av-lbp">Lookback planning</a></li>
<li><a href="#">Form</a></li>
<li><a href="#">Plan Component</a></li>
</ul>
</li>
<li>
<a href="#">Project Management</a>
<ul>
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
<li><a href="#">Link 3</a></li>
<li><a href="#">Link 4</a></li>
<li><a href="#">Link 5</a></li>
</ul>
</li>
</ul>
您可以在文档中附加一个事件处理程序来隐藏下拉菜单。
当点击菜单项本身时,您需要停止事件冒泡:
$(document).ready(function () {
$(document).on('click', function () {
$('.top-nav-head > li > ul').hide();
});
$(document).on('click', '.top-nav-head>li>a', function (e) {
e.stopPropagation();
$(this).siblings('ul').toggle().closest('.top-nav-head>li').siblings('li').find('ul').hide();
});
});
JSFiddle
这将检查您是否单击了元素,只需设置选择器("大多数"父项)和"隐藏"功能:
$(document).mouseup(function (e)
{
var your_element = $('#your_element');
if(container.has(e.target).length === 0)
{
//hide your element
}
});
相关文章:
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 是否有任何可能的原因使我应该指定类型=“”;按钮“;用于我的按钮元素
- 任何一种简单的方法都可以将带有onload的元素作为目标
- 如何查明鼠标按下事件是否发生在滚动条上或元素中的其他任何位置
- 从dom中删除任何元素后,Touchmove事件停止触发
- Javascript集:任何覆盖元素之间比较的方法
- 制作 JavaScript 代码适用于任何元素
- jQuery:append()不是't在选择器中插入任何元素
- 为什么在ASP.NET Ajax更新面板中执行任何操作后javascript元素都停止工作
- 比较数组中的连续元素不会返回任何结果(javascript)
- 如何在呈现页面后使用 Java 脚本检测 dom 元素值的值是否有任何变化(例如,任何输入或复选框值更改)
- 如何在不使用任何 html 输入/搜索元素的情况下读取本地客户端文本文件
- 与任何元素的 .innerHTML 属性匹配的 JavaScript 正则表达式
- 没有任何 DOM 元素的 Aura 组件
- 当“不相关”的 html 选择元素没有选择任何选项时,如何退出 jQuery 事件
- 当我单击chrome的输入类型=搜索元素上的X时,是否触发了任何事件
- IOS自动化:有没有办法;刷新'元素树(或者Instruments'认为可以访问和不能访问的任何内容)
- 如果我只想从数组中打印任何一个元素.任何数组.那么代码会是什么
- 是否可以使用 Javascript 库测试 SVG 元素?任何其他选项