v3shin
@v3shin
Веб-шаман

Как в js добавить отложенный обработчик событий?

Есть ли в js простой нативный способ добавить отложенный обработчик событий, аналогичный jQuery-вскому $(document).on('click', '.element', handler())?
  • Вопрос задан
  • 125 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
function foo(elem, eventType, selector, handler) {
  elem.addEventListener(eventType, function(evt) {
    if (evt.target.matches(selector)) {
      handler(evt)
    }
  })
}

вот, я сделяль!
foo(document, 'click', '.element', handler)

UPD:
e.target может находиться внутри требуемого элемента. К примеру, иконка внутри кнопки

evt.target.matches(selector) заменить на evt.taget.closest(selector)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@karminski
Senior PHP /React.js developer
Конечно есть. Ведь под капотом jQuery именно он и используется. Смотрите тут
Делегирование событий
Ответ написан
john36allTa
@john36allTa
alien glow of a dirty mind
document.addEventListener('click', function(e){
   if (e.target.classList.contains('element')){
         // your code
   }
}
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы