Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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
Javascript &引用;“触摸和感觉”;在自定义HTML下拉菜单中_Javascript_Html_Css_Menu_Mousehover - Fatal编程技术网

Javascript &引用;“触摸和感觉”;在自定义HTML下拉菜单中

Javascript &引用;“触摸和感觉”;在自定义HTML下拉菜单中,javascript,html,css,menu,mousehover,Javascript,Html,Css,Menu,Mousehover,我在HTMLpage+JavaScript上创建了一个自定义下拉菜单。我希望该菜单的作用如下: 单击按钮“Freunde”时,会出现下拉菜单 再次单击按钮时,下拉菜单将消失 当鼠标离开按钮+下拉菜单的“区域”时,它消失 下拉菜单由一个主div和多个div组成(“菜单项”) 我的第一种方法是在下拉菜单的主div上放置一个onmouseout(),但有以下问题:只要我将鼠标悬停在一个内部div上,onmouseout()就是真的,因为内部div填充了整个主div,所以只有用户不悬停在它上面,下拉

我在
HTML
page+
JavaScript
上创建了一个自定义下拉菜单。我希望该菜单的作用如下:

  • 单击按钮“Freunde”时,会出现下拉菜单
  • 再次单击按钮时,下拉菜单将消失
  • 当鼠标离开按钮+下拉菜单的“区域”时,它消失
下拉菜单由一个主div和多个div组成(“菜单项”)

我的第一种方法是在下拉菜单的主div上放置一个
onmouseout()
,但有以下问题:只要我将鼠标悬停在一个内部div上,
onmouseout()
就是真的,因为内部div填充了整个主div,所以只有用户不悬停在它上面,下拉菜单才可见

所以我试着像JQuery lightbox一样解决这个问题,即在整个屏幕上放置一个“background”div,并将下拉菜单粘贴到其中,然后在那里设置
onmouseover()
。这几乎是完美的,但“Freunde”按钮也会因此受到影响

那么,有没有办法将来自不同元素的事件组合起来呢?像

if(cursor is not over Button && cursor is not over DDMenu)  set invisible
我在下图中标记了所需的


假设您被设置为

<ul>
    <li></li>
    <li></li>
</ul>
然后像这样设置JS:

#nav ul li ul { display: none; }
#nav ul li.active:hover ul { display: block; }
var menuClick = function() {
    $(this).toggleClass('active');
    menuHover();
};
var menuHover = function() {
    $('#nav li.active').hover(function() {

    }, function() {
        $(this).removeClass('active');
    });
});

$('#nav > ul > li').on('click', menuClick);
当然,这绝对是粗俗的编码,但我认为它应该可以工作。(这还假设您正在使用jQuery库)