在窗口单击关闭画布菜单

时间:2014-08-21 11:07:11

标签: javascript jquery css menu

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

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

1 个答案:

答案 0 :(得分:2)

你很亲密!我认为你的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. 使用$(窗口).on not window.on
  2. e.target是一个DOM元素,所以你需要将其包装在jQuery中,如$(e.target)
  3. 您可以比较DOM元素,但不能比较jQuery对象,因此您可以使用hasClass而不是
  4. 我添加了一项检查,忽略了对切换本身的点击
  5. 带有工作代码的分叉代码:http://codepen.io/anon/pen/mzAru