我有一个相对简单的下拉菜单,我为它设置了 mouseenter 和 mouseleave 事件。该菜单效果很好,但是在移动 Safari 上单击“第二次”触发菜单的链接(在打开菜单后)不会关闭它。我尝试向 html 或正文添加单击事件以触发菜单关闭,但这似乎不起作用。
我的 HTML:
<ul>
<li class="dropdown"><a href="#">Toggle dropdown</a>
<ul class="dropdown-menu">
<li>This is my sub menu</li>
<li>And another item</li>
<li>And one more</li>
</ul>
</li>
<li><a href="#">Just another link</a></li>
我的 CSS(这点真的很复杂):
ul.dropdown-menu { display: none; }
我的 jQuery:
$(document).on({ mouseenter: function(){
$(this).find('.dropdown-menu').stop(true, true).delay(250).fadeIn(100);
$(this).addClass('open');
}, mouseleave: function() {
$(this).find('.dropdown-menu').stop(true, true).delay(50).fadeOut(50);
$(this).removeClass('open');
}}, 'ul li.dropdown');
我也把这一切都扔进了小提琴:
我有点认为向 li 本身添加一个点击事件可以让我触发关闭,但唉,这也没有给我想要的结果。
我已经在谷歌上搜索了几个小时,并在这里找到了几个相关问题的答案(例如:如何正确处理 'body' jquery event to close a dropdown),但似乎都没有像描述的那样工作
有任何想法吗?:!