jquery on click not working for dynamic content code example

Example 1: document on click dynamic element

$(document).on('click', '.class', function() {
    // do something
});

Example 2: jquery dynamic event handling

var counter = 0;

$("button").click(function() {
    $("h2").append("<p class='test'>click me " + (++counter) + "</p>")
});

// With on():

$("h2").on("click", "p.test", function(){
    alert($(this).text());
});

Example 3: change event doesn't work on dynamically generated elements .

$( "#dataTable tbody" ).on( "click", "tr",      
function() {
console.log( $( this ).text() );
});