jQuery.fn.delayedActivation = function () { $(this).each(function () { if (Page.keys.control) { return; } let $button = $(this); if (!$button.hasClass('delayed-activation')) { return; } else if ($button.data('running')) { return; } $button.data('running', 1); let activateOn = new Date(); activateOn.setSeconds(activateOn.getSeconds() + $button.data('activation-delay')); $button.addClass('disabled'); let text = $button.html(); $button.html(`${text} (${$button.data('activation-delay')})`); let interval = setInterval( function () { let now = new Date(); let seconds = parseInt((activateOn - now) / 1000); if (seconds > 0) { $button.html(`${text} (${seconds})`); } else { $button.removeClass('disabled'); $button.html(text); clearInterval(interval); } }, 900 ); }); };