右键单击时,jQuery Hover Menu消失

我有一个菜单在hover时打开。 但是在右键单击时,菜单会在上下文菜单打开时消失。 但我无法弄清楚为什么。 我需要在上下文菜单/右键单击的同时打开hover菜单。

jQuery代码(版本jquery-1.11.2.min.js):

jQuery(document).on('mouseover','#main_menu',function() { jQuery('#main_menu_inner').show(); }); jQuery(document).on('mouseleave','#main_menu',function() { jQuery('#main_menu_inner').hide(); }); 

HTML:

  

您可以通过添加布尔值来“破解” mouseover / mouseleave行为,以检查是否在mouseleave事件处理程序中打开了上下文菜单。 这不是一个很好的做法,但它可以使您的请求成为可能:

 var contextMenuOpened = false; $(document).on('mouseover', '#main_menu', function () { $('#main_menu_inner').show(); contextMenuOpened = false; }); $(document).on('mouseleave', '#main_menu', function () { $("#main_menu").on('contextmenu', function (e) { contextMenuOpened = true; }); if (!contextMenuOpened) { $('#main_menu_inner').hide(); } }); 

实例