0

可能重复:
JavaScript:删除事件侦听器

在单击“开始”按钮后,我试图从导航中删除一些事件侦听器。我似乎没有什么可以开火的。

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

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;  
}

所有这些都包含在一个 jQuerydocument.ready函数中。

4

1 回答 1

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;
    });
}); 

​<strong>HTML

<input id="startButton" type="button" value='click to disable' />
<div id="hrNav">Click me to highlight</div>​
于 2012-09-17T23:31:43.820 回答