Проблема в том, что вы перепутали переменную evt
, исходящую из вашего forEach
l oop, с объектом Event, который ваш код получил в качестве аргумента, но не принял.
В вашем code, evt
- это имя события, для которого был добавлен текущий вызываемый слушатель ("keyup"
или "click"
).
Когда вы оцениваете evt.keyCode
, оно возвращает undefined
(ни строк имени события имеют свойство keyCode
), и ваш код перестает работать.
Вместо этого вы, вероятно, хотели получить доступ к свойству keyCode
текущего события, к которому вы можете обращаться как к параметру в событии слушатель:
["keyup", "click"].forEach(
(eventName) =>
// ^^^^^^^^^--- Renamed for clarity
document
.getElementById(eachUser.buttonElement)
.addEventListener(eventName, eventObj => {
// ^^^^^^^^--- take argument (and name it whatever you want)
if ((eventName === "keyup" && eventObj.keyCode === 13) || eventName === "click") {
const pokeMessage = document.getElementById(eachUser.inputElement)
.value;
private_socket.emit("poke message", {
username: user.name,
sessionID: user.sessionID,
pokeMessage: pokeMessage,
});
pokeUser.parentNode.removeChild(pokeUser);
} else {
return;
}
}),
false
);