我有一个在悬停时打开的菜单。但是在右键单击时,当context菜单打开时,菜单就会消失。但我搞不懂为什么。我需要同时打开的悬停菜单与contextmenu/右键单击。
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:
<div id="main_menu">
<img id="menu_button" src="/skin/images/all/structure/menu_button.png" alt="Menü" />
<div id="main_menu_inner">
<img id="menu_arrow" src="/skin/images/all/structure/main_menu_arrow_down.png" alt="Arrow" />
<div class="clear_right"></div>
<ul>
<li>
<a href="">Link</a>
</li>
<li>
<a href="">Link</a>
</li>
<li>
<a href="">Link</a>
</li>
</ul>
</div>
</div>
发布于 2015-04-17 08:54:03
您可以通过添加一个布尔值来检查上下文菜单是否打开到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();
}
});
https://stackoverflow.com/questions/29693979
复制相似问题