2016-04-13 2 views
0

私のJSコードに問題があります。このコードはmegamenuでアクティブなdivですが、同時に2つのメガメニューを開くことができます。私はすでに現在のメガメニューをクリックしたときに消えます。秒がアクティブです。アイデアはありますか?JSでナビ(ダブルオープン)

$(function() { 

    var menuVisible = false; 

    $('.contentLink').click(function() { 

     var office = $(this).attr('data-office'); 

     if (menuVisible) { 
      $('#_' + office).hide(); 
      $(this).removeClass('on'); 
      menuVisible = false; 
      return; 
     } 
     else 
     { 
      $('#_' + office).show(); 
      $(this).addClass('on'); 
      menuVisible = true; 
     } 

    }); 

}); 

<nav> 
    <ul class="menu-links"> 
     <li><a data-office="events" class="contentLink">Events</a> 
      <div class="megamenu center" id="_events"> 
       My mega menu events 
      </div> 
     </li> 
     <li><a data-office="articles" class="contentLink">Articles</a> 
      <div class="megamenu center" id="_articles"> 
       My mega menu articles 
      </div> 
     </li> 
    </ul> 
</nav> 
+0

あなたの質問に[解決済み]を入れないでください。私たちはみなあなたが答えを選んだのを見ます:-) – Neal

答えて

1

はい、前にすべてのmegamenuを非表示にするには、あなたのclick()機能に次の行を追加します。私はそれを簡素化するようにコードを編集してきました

$('.megamenu').hide(); 

$(function() { 
    $('.contentLink').click(function() { 
     $('.megamenu').hide(); 
     menu = $(this).next(); 
     if(menu.is(':visible')){ 
      menu.hide(); 
     }else{ 
      menu.show();  
     }   
    }); 
}); 

Live example

+0

その仕事、ありがとう。私はちょうど "menu = $(this).next();"を修正しました。 "var menu = $(this).next();"私のjqueryのバージョンとの互換性のために私はエラーがある "メニューは未定義です"再びありがとう:) –

+0

大丈夫、あなたは大歓迎です:) –