The return false method is to combine event.preventDefault() (which, as the name implies, prevents the default action, equal to the standard, for example, removing / checking a flag, by link or submitting a form ...) and event.stopPropagation() ( this is what stops the event from spreading to / being "heard" by its ancestor elements). IE does this a little differently, but effectively you want to keep the default action (un / check), discarding the distribution. Therefore, bearing in mind, I would suggest:
$('input:checkbox').click(function(e){ e.stopPropagation(); alert(this.checked); });
JS Fiddle demo .
By the way, it is worth noting that live() deprecated in jQuery 1.7 and later (replaced by the on() method), and in versions prior to jQuery 1.7, documents (for live() ) recommend using delegate() instead,
But given that you are attaching events directly to the elements themselves, which assumes they are not dynamically added, you can simply simply use the click() method.
Literature:
source share