Задать вопрос
@IckiSanZ

Прошу объяснить неопытному кодеру почему не работает этот чертов код...(?

Здравствуйте, не могу понять почему этот код не работает, в моем понимании он должен принять нажатие, записать в переменную keyName значение (например. "s") и сравнить, таким образом в случае если будет введена "s", должно вывести alert. Но получается так что keyName = undefined, даже если я нажимаю клавишу на клавиатуре.

let symbolsCounter = 0;
let mistakesCounter = 0;
function checkUsersKey (levelText) {
	var theEnd = false;
	var counterLetters = 0;
	var keyName;
	while (theEnd != true ) {
		document.addEventListener("keypress", (event) => {
			keyName = event.key;
		})
		if(levelText[counterLetters] == keyName){
			alert("true");
		}

		theEnd = true;
	}
}
checkUsersKey("something");
  • Вопрос задан
  • 255 просмотров
Подписаться 2 Простой 6 комментариев
Решение пользователя sonca-ca К ответам на вопрос (3)
sonca-ca
@sonca-ca
Не понятно как именно вы хотите чтобы работал код, но сейчас он работает согласно тому, что вы написали.

Вы написали функцию и вызываете ее один раз. В тот момент, когда вы она выполняется, в переменной keyName действительно еще ничего нет.
Для того, чтобы ваша функция выполняла проверку после нажатия на клавишу, необходимо добавть ее вызов в функцию, которая исполняется по нажатию на клавишу.

var keyName;
var counterLetters = 0;
document.addEventListener("keypress", (event) => {
    keyName = event.key;
    checkUsersKey("something");
});
function checkUsersKey (levelText) {
    if(levelText[counterLetters] == keyName){
        alert("true");
    }
}
Ответ написан
Комментировать