2016-04-24 34 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,它也將觸發其click事件的事件將被傳播到頂部。因此#navigation元素會上下滑動。

+1

通過移動導航欄解決了它,但您的解釋讓我更瞭解所發生的事情 – dmc

0

我剛剛注意到我的導航是在漢堡包裏面。把它移動到漢堡包的下方已經成功了。菜鳥錯誤