为什么jQuery会在点击事件中中断?

时间:2017-02-18 21:57:04

标签: javascript jquery

我正在尝试为移动屏幕尺寸创建菜单/导航。我已经创建了一个变量来跟踪菜单是否已打开,如果是,则添加类'打开'到ul,但它只能工作第一次,然后停止,但是如果我删除了将类添加到ul的jQuery代码,那么它会继续像它所支持的那样工作,可能导致click事件中断的问题是什么? / p>

<td>

此处也提供代码: https://github.com/Kevin-Murda/SiteFichte/blob/c4122cdb6fb61a57adebc1b7f6863d8530b37ebd/pub/js/main.js#L144

4 个答案:

答案 0 :(得分:2)

使用addClass()removeClass()。如果这是一个切换,您应该在第二次单击时删除该类。

答案 1 :(得分:2)

更新

执行var site = this;时,您将获得对处理程序附加元素的引用,作为名为site的本地范围变量。

通过删除行var site = thissite.menuOpen将引用全局定义的site

更简单的解决方案是切换open类,而不用担心设置任何变量

Site.prototype.hamburgerHandler = function() {
  $('#hamburger').click(function(event) {
    event.stopPropagation();
    $('nav ul').toggleClass('open');
  });
}

答案 2 :(得分:0)

menuOpen尚未定义,这就是为什么它永远不会遍历循环。

答案 3 :(得分:0)

在这种情况下,问题是由菜单打开后它会重叠汉堡包按钮,然而你看到这个按钮而不是单击菜单而不是按钮,这一切都发生了,因为我使用的是padding-top而不是margin-top定位菜单,现在已经解决了,感谢所有帮助过的人。