The .click() events are only attach to fully loaded elements and can't use for dynamic added elements and utilize more memory and create event handler for each child. The .click () requires to event handler for all element which are attached and its produce the overhead at time of DOM manipulation.
The .on() events are used for both dynamic added elements and it’s consume less memory then .click () events. It allows creating the event handler which elements are added dynamically ways.
The .on() will work for current and future elements and it a replacement of the bind(), live() and delegate() methods.
The example as
//For .click() event example: //HTML code <ul id="click"> <li>List items</li> </ul> //For on() event example: //HTML code <ul id="on"> <li>List items</li> </ul> //JavaScript code $('#click li').click(function () { $(this).parent().append($('<li>New List items</li>')); }); //JavaScript code $('#on').on('click', 'li', function () { $(this).parent().append($('<li>New List items</li>')); }); //For more detail, you can go below link. http://jsfiddle.net/AJRw3/
The output looks like,