如何解决如何从窗口中删除事件监听器?
我正在构建蛇游戏,并在空格键发射后需要删除事件侦听器,但由于以下代码,我没有任何运气;
window.removeEventListener('keypress',(event)
什么也没做。有什么想法是正确的方法吗?谢谢
window.addEventListener('keypress',(event) => {
console.log(event)
if (event.key === ' ') {
startGame()
window.removeEventListener('keypress',(event))
}
})
解决方法
您需要引用该功能才能将其删除。不要使用匿名函数,而是:
function handleKeyPress(event){
console.log(event)
if (event.key === ' ') {
startGame()
window.removeEventListener('keypress',(event))
}
})
//add it
window.addEventListener('keypress',handleKeyPress);
//remove it
window.removeEventListener('keypress',handleKeyPress);
,
如果要删除事件侦听器,则必须将其定义为具有名称的函数,而不是像已经定义的那样内联函数。然后在添加和删除时提供其名称。
那是因为一个元素可能对同一事件具有多个侦听器。删除一个时,必须指定哪个。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。