加上一句「;在菜单外单击以关闭";将jQuery/Javascript添加到具有.toggle()的菜单下拉列表中
如果我在菜单外单击,我想添加关闭菜单的功能 并保持菜单按钮工作以关闭它: 另外,你能告诉我这是否适用于移动设备等吗?我希望如此,因为它正在使用。点击,对吗 这是指这篇文章,我无法回答以下问题:加上一句「;在菜单外单击以关闭";将jQuery/Javascript添加到具有.toggle()的菜单下拉列表中,javascript,jquery,html,css,menu,Javascript,Jquery,Html,Css,Menu,如果我在菜单外单击,我想添加关闭菜单的功能 并保持菜单按钮工作以关闭它: 另外,你能告诉我这是否适用于移动设备等吗?我希望如此,因为它正在使用。点击,对吗 这是指这篇文章,我无法回答以下问题: 我会将click事件附加到文档中,然后检查子元素。 假设您的LI元素具有类“菜单”: 假设您希望在有人点击ul标签外部时关闭。您需要捕获文档中的所有单击事件。然后检查点击是否发生在ul标签之外。如果在外面,则关闭菜单 var myelement = $('ul') $(document).on('clic
我会将click事件附加到文档中,然后检查子元素。 假设您的LI元素具有类“菜单”:
假设您希望在有人点击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
}
})
下面的步骤就完成了
$(document).on('click',function (e) {
footerUl = $('ul:first li');
if (!footerUl.is(e.target)
&& footerUl.has(e.target).length === 0){
footerUl.children('ul').hide();
}
});
$(文档).ready(函数(){
$(“li”)。单击(函数(){
$('li>ul').not($(this.children(“ul”).toggle()).hide();
});
});
$(文档)。在('单击')上,函数(e){
footerUl=$('ul:first li');
如果(!footerUl.is(e.target)
&&footerUl.has(e.target).length==0){
footerUl.children('ul').hide();
}
});代码>
div{
背景#999999;
高度:40px;
字体系列:Arial、Helvetica、无衬线字体;
字体大小:15px;
颜色:#000000;
利润率:-8px;
宽度:100%;
位置:固定;
底部:0px;
}
ul,li,a{
保证金:0;
填充:0;
}
李{
列表样式:无;
}
a{
文字装饰:无;
颜色:#000000;
}
ul>li{
浮动:对;
}
李娜{
颜色:#fff;
字体大小:粗体;
线高:40px;
高度:40px;
显示:块;
填充:0px 10px;
}
悬停{
背景#666666;
}
ul li ul{
显示:无;
位置:绝对位置;
背景:#333333;
底部:40px;
宽度:200px;
右:0px;
}
ulli ulli{
浮动:无;
线高:40px;
高度:40px;
}
-
-
-
-
太好了,谢谢!如果可以的话,我会给你100分;谢谢你!但我不知道如何让这个工作-也许我必须给所有的ul和li上课。但是巫婆需要`.菜单?基本上你需要捕获文档中的所有点击。检查单击是否在菜单中的Doms内。如果没有,那就是在菜单外点击。谢谢你发布这个问题的答案!堆栈溢出时不鼓励只使用代码的答案,因为没有上下文的代码转储无法解释解决方案的工作方式或原因,这使得原始海报(或任何未来读者)很难理解其背后的逻辑。请编辑您的问题并对代码进行解释,以便其他人可以从您的答案中获益。谢谢
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
}
})
$(document).on('click',function (e) {
footerUl = $('ul:first li');
if (!footerUl.is(e.target)
&& footerUl.has(e.target).length === 0){
footerUl.children('ul').hide();
}
});