jQuery.fn.confirm = function() { return this.one('click.confirm', function(event) { event.preventDefault(); var timeoutToken; var $this = $(this); var originalText = $this.text(); $this.text("Are you sure?").addClass("danger").bind('mouseout.confirm', function() { timeoutToken = setTimeout(function() { $this.text(originalText).unbind('.confirm').removeClass("danger").confirm(); }, 3 * 1000); }).bind('mouseover.confirm', function() { clearTimeout(timeoutToken); }); }).removeClass('danger'); }; $(function() { $('.confirm').confirm(); });