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

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

Есть ли в js простой нативный способ добавить отложенный обработчик событий, аналогичный jQuery-вскому $(document).on('click', '.element', handler())?
  • Вопрос задан
  • 273 просмотра
Решения вопроса 3
@karminski
Senior React.JS Developer
Конечно есть. Ведь под капотом jQuery именно он и используется. Смотрите тут
Делегирование событий
Ответ написан
Комментировать
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)
Ответ написан
Комментировать
john36allTa
@john36allTa
alien glow of a dirty mind
document.addEventListener('click', function(e){
   if (e.target.classList.contains('element')){
         // your code
   }
})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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