Glaube, so geht es (30 Sekunden, damit man nicht ewig warten muss...): $(function () { $('#dialog-confirm').dialog({ resizable: false, height: 'auto', width: 400, modal: true, buttons: { Weiter: function () { closeDialog(true); }, Abbruch: function () { closeDialog(false); }, }, }); function closeDialog(action) { clearInterval(iv); if ($('#dialog-confirm').dialog('isOpen')) { $('#dialog-confirm').dialog('close'); if (action) { alert('Aktion!!'); } } } let t1 = 30; let iv = setInterval(function () { document.getElementById('s1').innerHTML = t1; if (--t1 <= 0) { closeDialog(true); } }, 1000); }); https://jsfiddle.net/tk7uf58b/ Oder sieht jemand vielleicht noch einen Fallstrick? Edit: Ok, der Parameter sollte nicht "action" heißen... "doAction" wäre besser.