我目前正在向我的文档添加一个事件监听器。使用以下代码效果很好:
document.addEventListener('keydown', function(event)
{
if(event.keyCode === 68){
socket.emit('keyPress', {inputId: 'right', state: true});
}
else if(event.keyCode === 83){
socket.emit('keyPress', {inputId: 'down', state: true});
}
else if(event.keyCode === 65){
socket.emit('keyPress', {inputId: 'left', state: true});
}
else if(event.keyCode === 87){
socket.emit('keyPress', {inputId: 'up', state: true});
}
});
document.addEventListener('keyup', function(event)
{
if(event.keyCode === 68){
socket.emit('keyPress', {inputId: 'right', state: false});
}
else if(event.keyCode === 83){
socket.emit('keyPress', {inputId: 'down', state: false});
}
else if(event.keyCode === 65){
socket.emit('keyPress', {inputId: 'left', state: false});
}
else if(event.keyCode === 87){
socket.emit('keyPress', {inputId: 'up', state: false});
}
});
但是一旦我选择一个输入字段并键入包含 W、A、S、D 的内容,就会触发 EventListener。
有没有办法在选择输入字段后禁用事件监听器?
最佳答案
是的,检查什么event.target是的,如果它是您的输入元素,则只需返回,如果不是,则让代码继续。
document.addEventListener('keydown', function(event) {
if(event.target === someReferenceToYourElement){
return;
}
//rest of code
});
关于javascript - JS - 选择输入字段后禁用事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45759367/