ループがあり、特定の条件で、ループを続行または中断する前に、Jquery 遅延オブジェクトがユーザー入力を待機するようにしようとしています。
confirm().then(
の前にブロックを配置するfunction confirm(){
と、confirm 関数に十分なパラメータがないことがわかります。後に配置すると、ユーザーの操作を待ってループが「一時停止」されることはありません。
助けていただければ幸いです。
ありがとう
for(...) {
if (condition_that_needs_user_interaction){
function confirm() {
var defer = $.Deferred();
$('<div div="dialogError"></div>').html("Error. Continue?").dialog({
autoOpen: true,
close: function() {
$(this).dialog('destroy');
},
title: '<span style="color: red";>Warning!</span>',
modal: true,
buttons: {
'No': function() {
defer.resolve("no");
$(this).dialog("close");
},
'Yes': function() {
defer.resolve("yes");
$(this).dialog("close");
},
'Apply to All': function() {
defer.resolve("all");
$(this).dialog("close");
}
}
});
return defer.promise();
}
confirm().then(
function (answer) {
if(answer == "No") return false;
else if(answer == "Yes") {
//do something;
} else if (answer == "all") {
//do something;
}
}, function(answer) {
}, function(answer) {
});
} else {
// biz as usual
}
} //end for loop