Как делегирование реализовать на чистом js чтобы был синтаксис такой-же как в jquery или схожий?
$(document).on('click', '.selector', function (event) {})
Нашел пример кода на чистом js
https://youmightnotneedjquery.com/#delegate но не понимаю как его использовать. Хочется чтобы было удобно как в jquery и событие можно было удалить))
Так-же нашел такое решение:
function delegateEventListener (element, eventType, childSelector, handler) {
function delegate (event) {
let bubble
const validElements=[].slice.call(this.querySelectorAll(childSelector)).reverse().filter((matchedElement) => {
return matchedElement.contains(event.target);
})
validElements.forEach((validElement) => {
if(bubble===undefined || bubble!==false) bubble=handler.call(validElement, event)
})
}
element.addEventListener(eventType,delegate)
return delegate;
}
export default delegateEventListener
Нет ли лучше? И можно его как-то в прототип eventTarget прописать?