事件监听器在触发后不会删除

时间:2012-09-18 16:09:10

标签: javascript javascript-events

这类似于我之前发布的问题,但有一个不同的问题。也许我误解了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”事件处理程序后按钮没有触发任何内容的问题。我仍然在黑暗中。

0 个答案:

没有答案