This is because live uses a burst of events. When you click on a disabled button, the event is still bubbling, so live fires the event, and all click event handlers are executed. You can check the enabled state of the button inside the handler before doing anything. try it
$("#the_button").button({ icons: { primary: "ui-icon-disk" }, disabled: true }).live('click',function () { if($(this).is(':enabled')){ alert('clicked'); } });
Job Demo
Also, as indicated by other live , is deprecated from version 1.7+, so you can try and use on , but this problem will still be present, and you will have to handle it as I described above.
source share