jQuery-对于每个等待显示模式

时间:2019-02-08 11:42:53

标签: javascript jquery

我正在测试使用数组对象创建每个循环。我希望每个元素都显示一个带有数据和问题的模态窗口。回答问题后,模式隐藏与其他数组元素一起显示。

我已经阅读了很多信息,每个循环都迫不及待地想回答??

模式:

enter image description here

此界面用于要求用户替换图片。

我正在使用此代码:

$.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)->仅显示此元素的模态和警报。

摘要是:我需要每个循环在模态窗口中等待响应才能继续循环。

1 个答案:

答案 0 :(得分:0)

在这里不要使用循环。当然,each函数不会等待从“模态”窗口返回,因为您的窗口实际上不是模态的(只有alertpromptcomfirm是真实的模式。一切都经过事件,因此声明一个变量,该变量保存您现在要显示的元素的索引,并在用户单击“ nueva”或“ anterior”时递增和递减该元素,以从数组中恢复该元素并对其进行操作。 / p>