2016-07-22 4 views
0

私のナビゲーションの2番目のレイヤーを開くはずのJavascriptが機能せず、なぜ動作しないのかわかりません。明白なことを監督していますか?私のオフィスatmでちょっと暖かい。 :DブートストラップナビゲーションJavascriptが動作しない

$('.submenu').click(function(e) { 
      e.preventDefault(); 
      if ($(this).closest("ul .sub").hasClass("hide")) { 
      $(this).closest("ul .sub").removeClass('hide'); 
      $(this).closest("ul sub").addClass('show'); 
      } 
      else { 
      $(this).closest("ul sub").addClass('hide'); 
      $(this).closest("ul sub").removeClass('show'); 
      } 
    }); 

HTML:あなたが巣べき

<nav class="navbar navbar-default navbar-fixed-top"> 
     <!-- Collect the nav links, forms, and other content for toggling --> 
     <div class="collapse navbar-collapse"> 
      <div class="centering"> 
      <ul class="nav navbar-nav"> 
       <li><a class="navbar-brand" href="#"><img id="navlogo" alt="trlololol" src="gfx/Logo_Friedhof_Bildmarke-01.svg"></a></li> 
       <li class="dropdown"> 
       <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown<span class="nav-img"></span></a> 
       <ul class="dropdown-menu"> 
        <li><a href="#">Action</a></li> 
        <li><a href="#">Another action</a></li> 
        <li><a href="#">Something else here</a></li> 
        <li class="submenu dropdown-toggle"><a href="#">Next menu level<span class="nav-img"></span></a></li> 
        <ul class="sub hide"> 
         <li><a href="#">Blablabla</a></li> 
         <li><a href="#">Blablubla</a></li> 
         <li><a href="#">Blablibla</a></li> 
        </ul> 
        <li><a href="#">One link</a></li> 
       </ul> 
       </li> 
       <li class="dropdown"> 
       <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown32<span class="nav-img"></span></a> 
       <ul class="dropdown-menu"> 
        <li><a href="#">Action</a></li> 
        <li><a href="#">Another action</a></li> 
        <li><a href="#">Something else here</a></li> 
        <li class="submenu"><a href="#">Next menu level<span class="nav-img"></span></a></li> 
        <ul class="sub hide"> 
         <li><a href="#">Blablabla</a></li> 
         <li><a href="#">Blablubla</a></li> 
         <li><a href="#">Blablibla</a></li> 
        </ul> 
+0

あなたのコードにはjsfiddle.netを試してください。 –

+0

e.preventDefault()を使用します。ナビゲートする方法を確認してください。それは引き起こされますか? – Vitalii

+1

jQuery 'closest()'トラバース** UP ** DOMツリー、本当に望みますか? $(this)).closest( "ul sub")の代わりに '$(" ul .sub "、$(this))'のように子供を選択する必要があると思います。 – pumpkinzzz

答えて

1

あなたulの内側にあなたのこのようなli

その後
   <li class="submenu"><a href="#">Next menu level<span class="nav-img"></span></a> 
       <ul class="sub hide"> 
        <li><a href="#">Blablabla</a></li> 
        <li><a href="#">Blablubla</a></li> 
        <li><a href="#">Blablibla</a></li> 
       </ul> 
       </li> 

あなたが行うことができます:

$('.submenu').click(function(e) { 
    $(this).children('ul.sub').toggleClass('hide') 
}); 

フィドル:https://jsfiddle.net/hubkefw7/

+0

ありがとう、それは働いています。 – Pingbeat

関連する問題