You seem to be using SmartAjax to load the contents of the page. What SmartAjax does is that it changes the URL of the page (using pushState or hash), loads the data, and REPLACES the contents of the #posts div with the loaded content.
The problem is that you are listening for click events from DOM elements that are subsequently deleted and replaced with new DOM elements. This way click events from the loaded ajax content are not listening. live() in this case will not help.
To fix this, you have at least these two options:
1) Use jQuery delegate() to attach a handler and use the #posts div as the root element, as it remains after the new content is loaded.
Something like this should work:
$('#posts').delegate(':input', 'click', function() { var value = $(this).val(); alert('You have clicked thumbs up/down, value: ' + value); return false; });
2) Add a click download to the downloaded items after the data download is completed.
Note. By running jQuery 1.7 you should use on() instead of delegate()
source share