When a DOM object is added after the DOM has loaded, the usual process of binding an event to a specific jQuery object may not be sufficient.
E.g.: Normal binding to a button
$(function() {
$('#some-id').on('click', function() {
console.log('button clicked...');
});
});
But if the button is added dynamically after DOM has loaded, e.g. created by JavaScript, or created by asynchronous postback in ASP.Net, the binding will be lost. Instead of re-binding every time the button is re-created, we can simply bind to the document (always exists) and pass a specific filter, as follows:
$(function() {
$(document).on("click","#some-id", function() {
console.log('button clicked...');
});
});