2017-03-15 6 views
0

私は3つのforループを持っています。exit mulitpleクリック機能を持つループの場合

function slow() { 
    for (var j = 0; j < 1000000; j++) { 
    (function main(j) { 
     setTimeout(function() { 
     $(e).trigger("play"); 
     $(e).trigger("rerender"); 
     $('#Generation').text('Generation: ' + j); 
     }, 1000 * j/2); 
    }(j)); 
    } 
}; 

残りの二つforループが反復差の速度を除いて同一です。

私は、これらの3つのループを単一のjQueryクリック機能で終了/中断したいと考えています。 idが 'stop'のボタンをクリックすると

どうすればいいですか?

は、これは私のpen

+0

'$( '#ストップが')をクリックします(関数(){ });' – furball514

+0

'機能媒体(){ { (関数main(J){ のsetTimeout(関数(){ $(e)の.trigger( "遊び"); $(e)の.trigger(;; J <1000000 J ++ VAR J = 0)のための ( "rerender"); $( '#Generation')。text( 'Generation:' + j); }、1000 * j/8)。 }(j)); } };速い 機能(){のため (VAR jを= 0; jの<100000; J ++){ (関数main(J){ のsetTimeout(関数(){ $(e)の.trigger() "遊びます"。 (j))、 }、1000 * j/16); }(j)); $(e).trigger( "rerender"); $( '#Generation' } }; ' – furball514

+0

どのボタンをクリックしてループを解除しますか? – CaptainHere

答えて

0

はこれを試して..です

<script> 
     $(function(){ 

      var Break = false; // Declare this above your for loop function 

      $("#btnStop").click(function(e){ 
       e.preventDefault(); 
       Break = true; 
      }); 

      function slow() { 
      for (var j = 0; j < 1000000; j++) { 
       if(Break){break;} // Check this for each 3 for loop 
       (function main(j) { 
        setTimeout(function() { 
        $(e).trigger("play"); 
        $(e).trigger("rerender"); 
        $('#Generation').text('Generation: ' + j); 
        }, 1000 * j/2); 
       }(j)); 
       } 

       // I'm repeating same for loop for illustration. 
       for (var j = 0; j < 1000000; j++) { 
       if(Break){break;} // Check this for each 3 for loop 
       (function main(j) { 
        setTimeout(function() { 
        $(e).trigger("play"); 
        $(e).trigger("rerender"); 
        $('#Generation').text('Generation: ' + j); 
        }, 1000 * j/2); 
       }(j)); 
       } 

       for (var j = 0; j < 1000000; j++) { 
       if(Break){break;} // Check this for each 3 for loop 
       (function main(j) { 
        setTimeout(function() { 
        $(e).trigger("play"); 
        $(e).trigger("rerender"); 
        $('#Generation').text('Generation: ' + j); 
        }, 1000 * j/2); 
       }(j)); 
       } 
      }; 
     }) 
    </script> 
+0

は機能しませんforループはcontniuingを保ちます – furball514

関連する問題