Event delegation can be used for handling DOM events efficiently. The basic principle behind event delegation is bubbling of events. An event handler can be attached to a parent node and any event that occurs within its child element will bubble up if not already captured on its way to the parent node.
<div class="root">
<div>A</div>
<div>B</div>
<div>C</div>
<div>D</div>
<div>E</div>
<div>F</div>
<div>G</div>
</div>
// Using jQuery
$(document).ready(function () {
$(".root").on("click", function (e) {
alert(e.target.innerHTML);
// depending on e.target we can call necessary function (delegation)..
});
});
// Using DOM APIs
var el = document.getElementsByClassName("root");
el[0].addEventListener("click", function(e) {
alert(e.target.innerHTML);
});