console
const btn1 = document.getElementById('btn1');
bindEvent(btn1, 'click', function(event) {
event.preventDefault();
console.log(this.innerHTML);
});
const div3 = document.getElementById('div3');
bindEvent(div3, 'click', 'a', function(event) {
event.preventDefault();
console.log(this.innerHTML);
});
function bindEvent(elem, type, selector, fn) {
if(fn == null) {
fn = selector;
selector = null;
}
elem.addEventListener(type, function(event) {
console.log("event", event);
let target = event.target;
if(selector) {
if(target.matches(selector)) {
fn.call(target, event);
}
} else {
fn.call(target, event);
}
});
}
<button id="btn1">Regular Event Listener</button>
<div id="div3">
<a href="#">a1 </a>
<br>
<a href="#">a2 </a>
<br>
<a href="#">a3 </a>
<br>
<a href="#">a4 </a>
<br>
<button>Add more</button>
</div>