On('click') jquery doesn't work after page loaded with load() function

jquery

Solution

Use event delegation using .on()

$(document).on('click','.register-btn',function(){

instead of

$('.register-btn').on('click',function(){

Since `.register-btn` does not reside on the DOM(dynamic element), you cannot bind the event directly.

For dynamic elements, the syntax is:

$(parentselector).on('event', 'selector', yourFunction)

Note that `parentselector` needs to be a `Non-dynamic always DOM present element`

Problem

Is use a cookie to know which page to load inside my DIV ``` if($.cookie('logged') == null){ $('#auction-form').load('pages/login.php'); }else{ $('#auction-form').load('pages/bid.php'); } ``` But inside the login.php page, I have another link that would trigger another load() function which is not working. ``` $('.register-btn').on('click',function(){ $('#auction-form').load('pages/register.php'); }); ``` The .register-btn class is a link which should trigger the function above. I know this might be something that it's because when the login.php page is loaded, it's not in the DOM so the .register-btn can't be seen. How I could delegate the script on a page that is loaded from a load() function ?

Original source