繁体   English   中英

在窗口单击关闭画布菜单

[英]Close off-canvas menu on window click

我做了这个“滑出”菜单: SASS滑出菜单
没关系,但我希望当菜单滑动时,在窗口上单击菜单返回(删除类“nav-open”)。
我在codepen演示中试过这个,但它不起作用:

window.on("click", function(e) {
    if(wrapper.hasClass("nav-open") && e.target != nav && e.target.parent() != nav) {
        wrapper.removeClass("nav-open");
    }
});

你很亲密! 我认为你的codepen示例需要关闭逻辑块调整,如下所示:

  $(window).on("click", function(e) {
    if (
      wrapper.hasClass("nav-open") && 
      !$(e.target).parents(nav).hasClass("side-nav") && 
      !$(e.target).hasClass("toggle")
    ) {
        wrapper.removeClass("nav-open");
      }
  });

一些提示:

  1. 使用$(window).on not window.on
  2. e.target是一个DOM元素,所以你需要将其包装在jQuery中,如$(e.target)
  3. 您可以比较DOM元素,但不能比较jQuery对象,因此您可以使用hasClass
  4. 我添加了一个检查以忽略切换本身的单击

forked codepen与工作代码: http ://codepen.io/anon/pen/mzAru

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM