【发布时间】:2018-09-04 02:01:09
【问题描述】:
我可以很好地激活事件侦听器,但是让事件侦听器在它被激活后自行移除是迄今为止我无法做到的。到目前为止,通过我自己的研究,我的理解是附加到事件侦听器的函数需要以某种方式命名,删除事件侦听器需要能够删除。我试过了,但无法让它工作,因为它导致不再识别“e”的问题。这是我的代码:
that.enter = function(imageID, textID) {
// Listen for the ENTER key and mouse click.
console.log('Add event listeners...');
console.log(imageID + ' ' + textID);
document.addEventListener('keydown', function(e) {
if (e.which === 13) {
document.getElementById(imageID).click();
console.log('keydown activated');
console.log('removing keydown... ');
document.removeEventListener('keydown', function(e){});
console.log('keydown removed');
}
});
document.addEventListener('click', function(e) {
if (e.target.id != imageID && e.target.id != textID) {
document.getElementById(imageID).click();
console.log('click activated');
console.log('removing click... ');
document.removeEventListener('click', function(e){});
console.log('click removed');
}
});
console.log('DONE');
};
【问题讨论】:
标签: javascript html event-listener