如何删除事件监听器?

时间:2012-09-17 23:02:00

标签: javascript jquery javascript-events

  

可能重复:
  JavaScript: remove event listener

在点击“开始”按钮后,我试图从导航中删除一些事件侦听器。我似乎无法解决任何事情。

以下是我用来执行此操作的代码:

var startButton = document.getElementById('startButton');

startButton.addEventListener('click', function() {
    hrNav.removeEventListener('mousedown', highlight, false);
    alert('Did it remove the listener?');
}, false); 

我想删除的事件清单是:

if(hrNav.addEventListener){  
    hrNav.addEventListener('mousedown', highlight, false);  
    return true;  
} else {  
    hrNav.attachEvent('on'+'click', highlight);  
    return true;  
}

所有这些都包含在jQuery document.ready函数中。

1 个答案:

答案 0 :(得分:0)

因为你说你正在使用jQuery。尝试这样的事情:http://jsfiddle.net/MmFb2/4/

<强> JS

$(function(){
    var startButton = $('#startButton');
    var hrNav = $('#hrNav');

    startButton.bind('click', function() {
        hrNav.unbind('click');
    }); 

    var toggle = false; 
    hrNav.bind('click', function(){
        var ele = $(this); 
        if(toggle){
            ele.css('background-color', '');
        }else{            
            ele.css('background-color', 'yellow');
        }
        toggle = !toggle;
    });
}); 

<强> HTML

<input id="startButton" type="button" value='click to disable' />
<div id="hrNav">Click me to highlight</div>​