私は、要素の外側で クリックを検出するeventListenerを使用して閉じるメニューを持っています。サブメニューをクリックしてメニューを開いたままにする方法は?
しかし、サブメニューをトリガーする要素をクリックすると、 メニューも閉じます。これは必要ではありません。
私はいくつかのことを試しました(Stack Overflowなどを見て回ってみましたが)、両方を行うことができません。
ここでJSのコードがあります:
window.addEventListener('mouseup', function(event){
var boxmenu = document.getElementById('mainnav-mobi');
if (event.target != boxmenu && event.target.parentNode != boxmenu){
boxmenu.style.display = 'none';
}
});
今私は私がそれをクリックすると、メニューを閉じて、サブメニューボタンがあります。
var subButton = document.getElementByClassName('btn-submenu');
私は2つを組み合わせたいので、メニューが開いたままになりますメニューをクリックするかサブメニューボタンをクリックするかを指定します。ここ
は、HTMLです:
<nav id="mainnav-mobi" class="mainnav" role="navigation" style="display: none;">
<div class="menu-menu-1-container">
<ul id="menu-menu-1" class="menu">
<li id="menu-item-43" class="">
<a href="">My Account</a><span class="btn-submenu"></span>
<ul class="sub-menu" style="display: none;">
<li id="menu-item-36" class="menu-item menu-item-type-post_type menu-item- object-page menu-item-36">
<a href="">Login</a></li>
</ul>
</li>
<li id="menu-item-55" class="">
<a href=""> link</a></li>
</ul>
</div>
</nav>
ありがとう@leotestaを、それを解決し、それは、私はあることにtrying.This結果となっているものですサブメニューを切り替えることはできますが、メニューを外側にクリックして閉じるのを防ぐことができます。私はクラスにidを付けて、id ... try Jqueryと呼んだ。 – timber535
jsfiddle @ timber254を追加してください – leotesta