3

我制作了一个侧边导航菜单,单击按钮即可从左向右滑动。

$(document).ready(function(){
  $("#nav-toggle").click(function(){
    $("#page").toggleClass("margin");
  });
});

单击“#nav-toggle”按钮时,“#page”边距从 0px 增加到 600px。

    .margin {
margin-left:600px;width:380px;overflow-x:hidden
}


<div id="side-menu">

<nav>
    <a class="nav-links" href="#home">home</a>
    <a class="nav-links" href="#about">about</a>
    <a class="nav-links" href="#contact">contact</a>
</nav><!-- end of nav  -->

我将如何通过单击菜单外部来关闭菜单。

4

2 回答 2

13
$('body').on('click',function(event){
   if(!$(event.target).is('#nav-toggle')){
     $("#page").removeClass("margin");
   }
});
于 2013-05-22T12:03:40.120 回答
0

简单...使用这里解释的委托:http: //api.jquery.com/on/ “检查直接和委托事件

基本上我说的是......当用户点击文档上的任何地方并且源不在#side-menu内时:not(#side-menu)从#nav-toggle中删除类边距

$(document).on({
   click: function(){
      $("#nav-toggle").removeClass("margin")
   }
},":not(#side-menu)");
于 2013-05-22T12:21:51.540 回答