2015-05-14 65 views
1

我正在处理一个场景,因为我有一个在一个按钮上切换的菜单。 当我点击该菜单按钮时,它打开罚款。只有当我们点击窗口上的任何地方打开菜单时才切换菜单

问题仍然存在,此代码:

当我点击任何地方它打开和关闭切换。

现在我需要的是

当我点击的任意位置的窗口菜单上应该关闭,但只有当它处于打开状态。仅在打开状态时才切换。

HTML代码:

<section id="wrapper"> <!-- Sidebar --> 
    <aside id="sidebar-wrapper"> 
    <div class="togglebtn"><a href="#menu-toggle" id="menu-toggle"></a></div> 
      <ul class="sidebar-nav"> 
      <li class="sidebar-brand"> <a href="#" class="ripple"> 
       <div class="icon"><i class="demo-icon icon-meeter"></i></div> 
       <div class="nav-label"> <span>Dashboard</span></div> 
       </a> 
      </li> 
      </ul> 
    </div> 
</aside> 
</section> 

JavaScript代码:

<script> 
    $("#menu-toggle").click(function(e) { 
     e.preventDefault(); 
     e.stopPropagation(); 
     $("#wrapper").toggleClass("toggled"); 
    }); 

    $("body").click(function (e) { 
     e.preventDefault(); 
     $("#wrapper").toggleClass("toggled"); 
    }); 
</script> 

任何帮助将非常感激。

+0

哪里是在你的HTML包装DIV ??? – Jayababu

+0

@ Jayababu-更新了HTML代码。感谢指出这 –

回答

1

只要改变你的$("body").click功能:

$("body").click(function() { 
    $("#wrapper").removeClass("toggled"); 
}); 

眼下发生的事情是,你每次点击的身体的任何部分时间“切换”之类的。 切换根据其当前状态变成关闭。您需要确保在单击主体时删除它。

实际上,您可以使用toggleClass来完成此操作,但是您必须告诉它您希望通过传递参数state来删除该类。

$("#wrapper").toggleClass("toggled", false); 

见toggleClass jQuery的文档:http://api.jquery.com/toggleclass/

+0

完美这对我有效像一个魅力! –

相关问题