Ich füge gerade einen EventListener zu meinem Dokument hinzu. Welche funktioniert gut mit dem folgenden Code:JS - Deaktivieren Sie den Eventlistener, sobald das Eingabefeld ausgewählt ist
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});
}
});
Aber sobald ich ein Eingabefeld wählen würde, und geben Sie etwas enthält, W, A, S, D dann würde der Eventlistener ausgelöst werden.
Gibt es eine Möglichkeit, den eventListener zu deaktivieren, sobald das Eingabefeld ausgewählt ist?
Wie wäre es mit der Überprüfung für den Fokus innerhalb der keyup/keydown Listeners? Vielleicht fügen Sie eine Klasse wie '.ignoreInput' hinzu, die Sie Elementen hinzufügen können, und prüfen dann, ob das aktuell fokussierte Element diese Klasse mit etwas wie' document.activeElement' hat (vorausgesetzt, die Listener sollen wieder funktionieren, sobald die Eingabe unscharf ist) – DBS
'input.addEventListener ('Fokus', Funktion() {document.removeEventListener ('keydown' ....'? –