我有一个循环,在某些情况下我试图让Jquery延迟对象在继续或打破循环之前等待用户输入。
如果我将confirm().then(
块放在function 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