1
を終了した後、私はそうのようにjQuery UIのダイアログを使用して確認ボックスを呼び出す時まで:遅延jqueryのUIダイアログクローズコールバックが
function tps_show_confirm(cTitle, cContent, noClose = true, dwidth = 300, callback=null) {
if (noClose == true) {
var dClass = 'no-close';
} else {
var dClass = '';
}
var confirmDiv = '<div class="tps-confirm-modal">'+cContent+'</div>';
var maxHeight = window.innerHeight * .80;
$(confirmDiv).dialog({
title: cTitle,
dialogClass: dClass,
modal: true,
width: dwidth,
maxHeight: maxHeight,
draggable: false,
resizable: false,
create: function(event, ui) {
$('body').css({ overflow: 'hidden' })
},
beforeClose: function(event, ui) {
$('body').css({ overflow: 'inherit' })
},
buttons: {
Ok: function() {
if (typeof callback === 'function') {
callback();
}
$(this).dialog('close');
},
Cancel: function() {
$(this).dialog('close');
}
}
});
}
私は時にOKボタン.dialog('close')
行動を遅らせる方法を把握しようとしていますcallback()関数が終了するまでクリックされます。私は.done()や.finish()と.when()のさまざまな組み合わせを試しましたが、私はそれらをあまり理解していないので、このようなことはしていないようです。
これを実現する方法はありますか?うまくいけば、
TIL。素敵なもの... – GhitaB
ありがとう!これは確かに有望に見えます。しかし、コールバックが何らかの理由で終了する前に、モーダルはすぐにOKをクリックして閉じています。 – Eckstein
コールバックが実行を終了したかどうか確認していますか? – brk