0
let add = false

document.addEventListener('keypress',function(e)
{
  if(e.keyCode == 13)
  {
    add = true
  }
})

console.log(add)
  • Запустил этот код у себя — всё отлично меняется – andreymal Mar 15 '23 at 23:21
  • СНАРУЖИ функции add не меняется, внутри да. Хотя обчная функция меняет. Код то сам рабочий. Наверное с замыкание по другому работает – Юсуп Адилханов Mar 16 '23 at 00:53
  • Смотри ответ дубликат. А в целом, тебе не нужно это значение снаружи. От слова совсем. Ты всё равно это значение будешь где-то ещё использовать, в какой-нибудь другой функции, которая будет вызываться после отработки текущего события (в качестве колбэка), а, значит, в том месте ты будешь оперировать переменной add. А она в функции была изменена... – Алексей Шиманский Mar 16 '23 at 05:24
  • можешь вывод сделать из вот этого ответа: https://ru.stackoverflow.com/a/1476674/191482 .. там async/await , но смысл тот же – Алексей Шиманский Mar 16 '23 at 05:30
  • @АлексейШиманский Он просто делает выводы исходя из того что выводится в консоль после строки с событием, но он не думает что этот вывод строки срабатывает раньше чем событие, естественно он там ещё не изменился. – Elmir Mar 16 '23 at 06:03
  • @Elmir Мне не надо это объяснять. Я это вполне понимаю, поэтому дал ссылки на ответы с асинхронностью – Алексей Шиманский Mar 16 '23 at 06:04
  • @АлексейШиманский Полегче дядька, я тебе не объясняю как работает этот код – Elmir Mar 16 '23 at 06:05
  • @Elmir говоря о том, что "думает что этот вывод строки срабатывает раньше чем событие, естественно он там ещё не изменился" ты по сути и рассказываешь о том, как код работает. Ещё раз: я дал дубликаты не потому что в голову взбрело ткнуть куда попало, а потому, что я вполне знаю что за проблема у человека, мне это пояснять не нужно – Алексей Шиманский Mar 16 '23 at 06:16

1 Answers1

0

Ваш код работает, почему вы решили что нет? По вашему выводу в консоль console.log(add)? Добавьте вывод в консоль в событие addEventListener, чтобы убедиться

let add = false

document.addEventListener('keypress',function(e) { if(e.keyCode == 13) { add = true } console.log(add) })

console.log(add)

Так же убедитесь, что указали верный keyCode, 13 - это enter