@CityzenUNDEAD

Почему код работает только в отладчике?

Здравствуйте!
У меня есть задача, при попадании картинки в фокус клавиатуры, нажатие enter-а должно приводить к открытию модального окна с картой.
В итоге написал такой код:
mapLink.addEventListener("keydown", function (evt) {
    if (evt.keyCode === 13) {
    openModalMap();
  }
});
var openModalMap = function () {
  modalMapBlock.classList.add("overlay-active");
  modalMap.classList.add("modal--location-open");
  buttonClose.focus();
};

Данный код хорошо работает в отладчике, но не работает в боевом режиме.
Можете подсказать почему так выходит?
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ответы на вопрос 1
Xuxicheta
@Xuxicheta
инженер
ну вот сравните
https://jsfiddle.net/melchiorio/rm03a2zk/

const focusBtn = document.getElementById('focusBtn');

let listenerFocus;

focusBtn.addEventListener('focus', () => {
  listenerFocus = listenEnter();
});

focusBtn.addEventListener('blur', () => {
  window.removeEventListener('keydown', listenerFocus);
});

function listenEnter() {
  const listener = (evt) => {
    if (evt.keyCode === 13) {
      openModalMap();
    }
  }
  window.addEventListener('keydown', listener);
  return listener;
}


function openModalMap() {
	document.getElementById('modal').classList.toggle('hidden');
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы