Отмена event.preventDefault(); на событии
Ребята, подскажите, пожалуйста, как мне решить следующую задачу:
У меня есть следующая функция, в которой используется event.preventDefault(), но при опреденном условии мне необходимо удалить event.preventDefault() и вернуть действие по умолчанию. То, что есть сейчас: document.addEventListener('keydown', function(event) { if (event.keyCode == 9) { event.preventDefault(); } }); То, что, я примерно хотел бы получить: document.addEventListener('keydown', function(event) { let flag = true; if (flag) { event.preventDefault(); } else { // отмена event.preventDefault(); } }); |
s24344,
Ведь можно назначать обработчик и, соответственно, event.preventDefault() не на document, а только на нужный блок. Вы что, вернулись к этой технологии? А как насчет focus + tabindex? |
focus + tabindex. Возникла в дальнейшем проблема, я менял программно tabindex у лементов с помощью setAttribute('tabindex', '1') (например). И обнаружил, что в firefox, ie. Программно tabindex не устанавливается. В любом случае Вам спасибо за помощь.
|
preventDefault() не нужно отменять. Если он не вызвался в данном вызове ф-ии, то предотвращения дефолтного действия не произойдёт.
|
Цитата:
|
Спасибо.
|
Всё же решил более подробно описать задачу. И попросить вашей помощи:
#app a.some-links link a.some-links link ul.list li.list__item a(href="#" data-nav-id="_1").list__link First li.list__item a(href="#" data-nav-id="_2").list__link Second li.list__item a(href="#" data-nav-id="_3").list__link Third ul.nav li(data-nav-id="_1").nav__item a(href="#").nav__link first .nav__popup ul.nav__popup-list li.nav__popup-item a(href="#").nav__popup-link first 1 li.nav__popup-item a(href="#").nav__popup-link first 2 li(data-nav-id="_2").nav__item a(href="#").nav__link second .nav__popup ul.nav__popup-list li.nav__popup-item a(href="#").nav__popup-link second 1 li(data-nav-id="_3").nav__item a(href="#").nav__link Third .nav__popup ul.nav__popup-list li.nav__popup-item a(href="#").nav__popup-link third 1 a(href="#").nav-pane pane a.some-links link a.some-links link Должно работать как данном примере: http://www.kentfa.com/ При первом нажатии на tab, первый элемент a или button принимает focus, после чего в default порядке происходит смена focus, но когда focus принимает .list__link, далее при нажатии на клавишу tab, focus переходит на .nav-pane(без фокуса он скрыт). Далее мы нажимаем на enter (space), фактически это событие click, и появляется .nav__item (с соответствуещей привязкой по data атрибутам), далее мы при нажатии на tab также меняем фокус по default порядку. Когда же будет последний элемент .list__item, мы в последний раз перейдем на .nav__popup, и далее вниз по a (button). И также важно, что default навигация, смена focus, при shift + tab, также корректно работает. |
Часовой пояс GMT +3, время: 01:22. |