我正在测试使用数组对象创建每个循环。我希望每个元素都显示一个带有数据和问题的模态窗口。回答问题后,模式隐藏与其他数组元素一起显示。
我已经阅读了很多信息,每个循环都迫不及待地想回答??
模式:
此界面用于要求用户替换图片。
我正在使用此代码:
$.each( arrayExist, function( i, value ) {
if (value == 1) { // Show modal with the old and new image when value is true
alert ('Exist');
$('#overwriteImages').modal('show');
$('#overwriteImages').on('show.bs.modal', function (event) {
$('input[type="submit"]').click(function(event){
$('#btnYes').on('click', function() {
$('#overwriteImages').modal('hide');
});
$('#btnNo').on('click', function() {
$('#overwriteImages').modal('hide');
arrayCod.splice( $.inArray(removeItem,i) ,1 );
alert(arrayCod.length);
});
});
});
}else{
alert ('Not Exist');
}
});
我不确定是否可以做到这一点,否则它将是一个更好的选择……ajax或其他任何方式。
问题在于每个循环在每个模式窗口中执行。它不等待响应是或否。示例:
选择两个元素。
Element(1)->显示模式和两个警报,因为每个循环运行两次)
Element(2)->显示模式和两个警报,因为每个循环运行两次)
正确的行为是:
选择两个元素。
Element(1)->仅显示此元素的模态和警报。
Element(2)->仅显示此元素的模态和警报。
摘要是:我需要每个循环在模态窗口中等待响应才能继续循环。
答案 0 :(得分:0)
在这里不要使用循环。当然,each
函数不会等待从“模态”窗口返回,因为您的窗口实际上不是模态的(只有alert
,prompt
和comfirm
是真实的模式。一切都经过事件,因此声明一个变量,该变量保存您现在要显示的元素的索引,并在用户单击“ nueva”或“ anterior”时递增和递减该元素,以从数组中恢复该元素并对其进行操作。 / p>