Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
加上一句「;在菜单外单击以关闭";将jQuery/Javascript添加到具有.toggle()的菜单下拉列表中_Javascript_Jquery_Html_Css_Menu - Fatal编程技术网

加上一句「;在菜单外单击以关闭";将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();
  }
});