2016-08-23 18 views
0

私はモバイルナビゲーションに使用しているリスト項目があります。それは次のようになります。ランダムなjqueryの切り替えを禁止するにはどうすればよいですか?

<div id="menu"> 
    <ul> 
    <li class="menu-item"><a href="#">Menu item 1</a></li> 
    <li class="menu-item"><a href="#">Menu item 2</a></li> 
    <li class="menu-item"><a href="#">Menu item 3</a> 
     <div id="submenu-wrap"> 
     <ul class="submenu"> 
      <li class="submenu-item"><a href="#">SubMenu item 1</a></li> 
      <li class="submenu-item"><a href="#">SubMenu item 2</a></li> 
     </ul> 
     </div> 
    </li> 
    <li class="menu-item"><a href="#">Menu item 4</a></li> 
    <li class="menu-item"><a href="#">Menu item 5</a></li> 
    <li class="menu-item"><a href="#">Menu item 6</a> 
     <div id="submenu-wrap"> 
     <ul class="submenu"> 
      <li class="submenu-item"><a href="#">SubMenu item 3</a></li> 
      <li class="submenu-item"><a href="#">SubMenu item 4</a></li> 
     </ul> 
     </div>  
    </li>  
    </ul> 
</div> 

私はサブメニュー(UL)隠さを持っているだけjqueryのトグルトリガーがクリックされたときに表示されます。 ! #サブメニューラップ{ 位置:

$('#submenu-wrap').on('click',function(){ 
    $('.submenu').slideToggle(); 
});  

ここに私のCSSは次のようになります。ここでは

は私のjqueryのは次のようになります。相対的な重要。 }

#submenu-wrap:after { 
    font-family: FontAwesome; 
    font-size: 18px; 
    color: #555555; 
    cursor: pointer; 
    content: "\f078"; 
    position: absolute; 
    right: 5px; 
    top: -30px; 
    z-index: 99; 
} 

私はサブメニューを切り替えるには、サブメニュー(#サブメニュー-ラップ)ラップのdivを使用しています。 これは完璧に機能します。

私が抱えている問題は、トリガーをクリックすると、すべての非表示サブメニュー(ul)が開きます。次のサブメニューだけを開くようにします。つまり、ラップするサブメニューだけを開きます。各トリガーはそれぞれのサブメニューを開く必要があります。

私は実際にここでいくつかの助けを使用することができます...

ありがとうございます。

+5

'id'は一意*でなければなりません* – dm295

+2

ソリューションがすでに提供されますが、私されています私が開発した哲学を共有したい:「ランダム」という言葉を決して使用しないでください。起こっていることは、あなたが作った一連のプログラムの選択のせいでおそらく起こっているからです。これは、おそらく決定を追跡し、異なるものを作ることができることを意味します。 「ランダム」なものを呼び出すと、あなたの知覚された力を取り除いて物を変えます。持ち続けて強く、仲間のコーダー!ロボットが勝つようにしないでください! – ingernet

答えて

2

前述のdm295のように、idの値は一意である必要があります。 submenu-wrapは、idの代わりにclassにする必要があります。あなたがクリックされた要素の子である.submenuの要素を検索する必要がありますように変化し、それが聞こえることを考えると

$('.submenu-wrap').on('click',function(){ 
    $(this).find('.submenu').slideToggle(); 
}); 
関連する問題