在菜单外添加一个“点击”按钮以关闭菜单.jQuery / Javascript到一个带有.toggle()的下拉菜单
Add an "click outside of menu to close" jQuery / Javascript to a menu drop-up that has .toggle()
我想添加的功能,以关闭菜单,如果我点击菜单外。
并且也保持菜单按钮工作以关闭它:https://jsfiddle.net/ezkay/1he5bhzt/
$(document).ready(function () {
$("li").click(function () {
$('li > ul').not($(this).children("ul").toggle()).hide();
});
});
你还能告诉我这是否适用于手机等吗?我希望也这么认为,因为它使用的是。click,对吧?
这是指这篇文章,我不能回答那里的问题:如何将下拉菜单更改为下拉菜单
DEMO
下面的代码可以达到这个目的。
$(document).on('click',function (e) {
footerUl = $('ul:first li');
if (!footerUl.is(e.target)
&& footerUl.has(e.target).length === 0){
footerUl.children('ul').hide();
}
});
$(document).ready(function () {
$("li").click(function () {
$('li > ul').not($(this).children("ul").toggle()).hide();
});
});
$(document).on('click',function (e) {
footerUl = $('ul:first li');
if (!footerUl.is(e.target)
&& footerUl.has(e.target).length === 0){
footerUl.children('ul').hide();
}
});
div {
background: #999999;
height: 40px;
font-family: Arial, Helvetica, sans-serif;
font-size: 15px;
color: #000000;
margin: -8px;
width:100%;
position:fixed;
bottom:0px;
}
ul, li, a {
margin: 0;
padding: 0;
}
li {
list-style: none;
}
a {
text-decoration: none;
color: #000000;
}
ul > li {
float: right;
}
ul > li a {
color: #fff;
font-weight: bold;
line-height: 40px;
height:40px;
display:block;
padding:0px 10px;
}
ul li a:hover {
background: #666666;
}
ul li ul {
display: none;
position: absolute;
background: #333333;
bottom:40px;
width: 200px;
right: 0px;
}
ul li ul li {
float: none;
line-height: 40px;
height: 40px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div>
<ul>
<li><a href="#">=</a>
<ul>
<li><a href="#">one</a>
</li>
<li><a href="#">two</a>
</li>
<li><a href="#">three</a>
</li>
</ul>
</li>
</ul>
</div>
假设您希望在有人在ul标记外单击时关闭。您需要捕获文档中的所有单击事件。然后检查点击是否发生在ul标签之外。如果它在外面,那么关闭菜单
var myelement = $('ul')
$(document).on('click', function(e) {
var el = e.target();
if(!$.contains(myelement, el)) { //checks if the click happened outside the ul tag
//close menu
}
})
我会将click事件附加到文档,然后检查子元素。假设你的LI元素有一个类"menu":
$(document).click(function(e) {
var $clicked = $(e.target);
if (!$clicked.parents().hasClass("menu")) {
//close menu here
}
});
相关文章:
- 正在读取<p: 选择一个菜单/>在onchange回调中
- 禁用数据自动关闭下拉列表基金会只需在一个菜单中
- 如何更改此按钮/菜单列表,以便一次只能看到一个菜单
- 如何更改<h: 选择一个菜单>在JSF中选择一个条目的下拉菜单
- 使用一个菜单按钮添加animate-in和animate-out类
- 引导两个响应菜单-单击另一个菜单按钮时折叠一个菜单
- jQuery:如何创建一个菜单和子菜单,每次单击时类都会在其中切换
- 如何在鼠标悬停时打开素数选择一个菜单
- 在选择一个菜单更改的同一窗口中打开一个对话框
- 单击一个菜单项时显示隐藏字段 - 高级自定义字段转发器
- 在“选择一个菜单”框中获取所选值
- 有了手风琴菜单,我如何确保打开一个菜单会关闭它的兄弟菜单
- 我需要创建一个菜单,它有多个子菜单
- 我如何使一个菜单在HTML中显示为一个选项卡,直到点击
- 我的Bootstrap模式锚不是从一个菜单(导航栏)的行项目内工作
- 在一个菜单模板中插入不同的菜单项
- 如何用另一个活动菜单突出显示另一个菜单
- 我有一个菜单,我不知道如何正确使用slideToggle,当我按下另一个按钮时,向下滑动和向上滑动
- 一个菜单的一些页面与mongodb的链接
- 触摸设备的jQuery下拉导航.单击另一个菜单项时不能隐藏菜单项