我正在尝试为移动屏幕尺寸创建菜单/导航。我已经创建了一个变量来跟踪菜单是否已打开,如果是,则添加类'打开'到ul,但它只能工作第一次,然后停止,但是如果我删除了将类添加到ul的jQuery代码,那么它会继续像它所支持的那样工作,可能导致click事件中断的问题是什么? / p>
<td>
答案 0 :(得分:2)
使用addClass()
和removeClass()
。如果这是一个切换,您应该在第二次单击时删除该类。
答案 1 :(得分:2)
更新
执行var site = this;
时,您将获得对处理程序附加元素的引用,作为名为site
的本地范围变量。
通过删除行var site = this
,site.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定位菜单,现在已经解决了,感谢所有帮助过的人。