菜单的mouseenter鼠标离开点击(menu mouseenter mouseleave cli

2019-08-03 05:31发布

任何人都可以帮我吗? 我想上的mouseenter和鼠标离开事件,但是当鼠标点击后进入动画的下拉菜单我想要的子菜单保持可见,直到新的任意位置单击页面(在本例中仅在机身)。 这第二点击(鼠标离开的相同的动画)之后,我想的mouseenter和再鼠标离开。对像,当我们开始。

$('#menu > li').on('mouseenter',function(){
    //mouseenter handler
});

$('#menu > li').on('mouseleave',function(){
    //mouseleave handler
});
$('#menu > li').toggle(
  function () {
  $('#menu > li').off('mouseenter mouseleave');
  },
  function () {
  //mouseleave handler
  });
$('body').click(function(){
  //same mouseleave handler
});

我不知道我可以启用后第二次点击的mouseenter /鼠标离开。 对不起,并感谢。

Answer 1:

这可以使用事件代表团的显著简化为:

$('document').on("click",'#menu > li', function() {
    $('#menu > li').off('mouseenter mouseleave');
});

$('document').on("click",':not(#menu > li)', function() {
    $('#menu > li').on('mouseenter', function(){
         //your mouseenter handler goes here
    });
    $('#menu > li').on('mouseleave', function(){
         //your mouseleave handler goes here
    });
});

这是语义上等同于:

If a click happens on a menu item, unbind mouse enter/leave events

If a click happens on a non menu item, bind mouse enter/leave events


文章来源: menu mouseenter mouseleave click