A
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.