クリックするとダイアログ (Alloy UI ダイアログ、html) がポップアップする削除 (入力送信) ボタンを取得しました。
A.all("#RFB input.ConfirmDelete").each(function(node){
node.on('click', function(event) {
if(confirmed) {
showUserWaitDialog();
return true;
}
else {
deactivateKeyboardNav();
deleteConfirm(node, confirmDeleteMessage, function () { //Runs the function rendering the pop up
confirmed = true;
event.target.click();
showUserWaitDialog();
});
}
});
});
問題は、event
が非同期で実行されているために削除が実行され、ユーザーが [OK] をクリックする (コールバックを呼び出す) のを待たないことです。
deleteConfirm は次の引数を取ります
function deleteConfirm(link, pText, callback) {
ポップアップの内容は次のとおりです。
var bodyContent = '<div class="vl-info vl-message"><h2>'+titleText+'</h2>'+
'<p>'+pText+'</p>' +
'<p class="more button-area"><a href="#" class="deleteOK">'+confirmButtonText+'</a><a href="#" class="deleteNotOK">'+discardButtonText+'</a></p></div>';
ボタンの機能は次のとおりです。
A.one('.deleteOK').on('click', function(e){
(jQuery.isFunction(callback)) && callback.apply();
confirmDialog.close();
confirmDialogOpen = false;
});
A.one('.deleteNotOK').on('click', function(e){
confirmDialog.close();
confirmDialogOpen = false;
return false;
});
これにどのようにアプローチすればよいですか?