0

ループがあり、特定の条件で、ループを続行または中断する前に、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    
4

0 に答える 0