2016-04-24 18 views
2

私はリンクをクリックすると関連するセクションにスクロールするナビゲーションメニューの全画面スライドを取得しました。メニューは#hamburger divをクリックすることで切り替えられます。私が欲しいのは、リンクの上に私をクリックすると、メニューが再び視野の外にスライドさせるためのものですが、何が起こるかは、それが再び戻ってダウン要素を切り替えるために複数のソースを使用する

<div id="hamburger"> 
    <nav id="navigation"> 
     <ul> 
      <li><a></a></li> 
      <li><a></a></li> 
      <li><a></a></li> 
     </ul>    
    </nav> 
</div> 

<script> 
$(document).ready(function(){ 
    $("#hamburger , ul li a").click(function(){ 
     $("#navigation").slideToggle("slow"); 
    }); 
}); 
</script> 

答えて

1

をスライドしているあなたはevent-propagationを停止する必要があり、

$(document).ready(function(){ 
    $("#hamburger , ul li a").click(function(e){ 
     e.stopPropagation(); 
     $("#navigation").slideToggle("slow"); 
    }); 
}); 

あなたはanchor以上の要素をクリックしているとき、それは文書に到達し、その時間の間、それは#hamburgerを横断し、それはまた、そのクリックイベントを発生させますまで、イベントがトップに伝播されます。したがって、#navigation要素が上下にスライドしています。

+1

navを動かすことで解決しましたが、あなたの説明は私に何が起こっていたのかをもっと理解してくれました – dmc

0

私のハンはハンバーガー部に入っていることに気がつきました。ハンバーガー部門の下にそれを動かすことはそのトリックを行った。ルーキーミス

関連する問題