mouseenterイベントとmouseleaveイベントを設定した比較的シンプルなドロップダウンメニューがあります。メニューはうまく機能しますが、モバイルSafariでは、メニューを「2回目」(メニューを開いた後)にトリガーするリンクをクリックしてもメニューは閉じません。クリックイベントを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イベントを適切に処理する方法)が、どちらも説明どおりに機能していないようです
何か案は?:!