这类似于我之前发布的问题,但有一个不同的问题。也许我误解了javascript事件?
基本上,我有一个用户可以点击的导航。效果很好。我还需要有一种方法,用户可以点击一个名为“开始”的按钮来引导他们完成导航(而不是让他们直接点击它),而不是点击导航,解释事情......所以此时我需要从导航中删除事件监听器。
当页面加载时,我单击以删除事件侦听器,它可以工作。您无法再点击导航。但是当我再次重新加载页面时,单击导航几次,然后单击“开始”按钮以删除事件监听器,它仍然允许我单击导航。
addEventListener代码:
var hrNav = document.querySelector('.hrNav');
if (isiPad == true) {
hrNav.addEventListener('touchstart', highlight, false)
} else {
if(hrNav.addEventListener){
hrNav.addEventListener('click', highlight, false);
} else {
hrNav.attachEvent('on'+'click', highlight);
}
}
删除事件侦听器的代码:
$("#startButton").click(function() {
hrNav.removeEventListener('click', highlight, false);
});
我意识到我以一种奇怪的方式将jQuery与本机javaScript混合,但我稍后会修复它。我试图在没有jQuery的情况下尽可能地做到这一点。
修改 在更多的调查中,我在单击按钮时发出警报,似乎在“hrNav”的事件监听器被触发后,单击按钮没有做任何事情 - 删除偶数处理程序并不是真正的问题,但是使用“hrNav”事件处理程序后按钮没有触发任何内容的问题。我仍然在黑暗中。