首页 > 解决方案 > Jquery - 对于每个等待显示模式

问题描述

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

我已经阅读了很多信息,并且每个循环都等不及响应¿?

模态:

在此处输入图像描述

该接口用于要求用户替换图像。

我正在使用以下代码:

$.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 或其他什么。

问题是每个循环都在每个模态窗口中执行。它不会等待响应是或否。示例:

选择两个元素。

元素(1)-> 显示模态和两个警报,因为每个循环运行两次)

Element(2) -> 显示模态和两个警报,因为每个循环运行两次)

正确的行为是:

选择两个元素。

Element(1) -> 仅显示模态和此元素的警报。

Element(2) -> 仅显示模态和此元素的警报。

总结是:我需要每个循环等待模式窗口中的响应以继续循环。

标签: javascriptjquery

解决方案


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


推荐阅读