You don’t really need to add listeners to all the buttons. There is such thing in JS as Bubbling and capturing so you can wrap all your buttons
with a div
and catch all the events there. But make sure you check that the click was on a button
and not on the div
.
const wrapper = document.getElementById('wrapper');
wrapper.addEventListener('click', (event) => {
const isButton = event.target.nodeName === 'BUTTON';
if (!isButton) {
return;
}
console.dir(event.target.id);
})
div {
padding: 20px;
border: 1px solid black;
}
<div id='wrapper'>
<button id='but1'>
Button1
</button>
<button id='but2'>
Button2
</button>
<button id='but3'>
Button3
</button>
<button id='but4'>
Button4
</button>
</div>