2017-03-15 1 views
0

Ich habe drei for Schleifen.Exit mulitple For Schleifen mit Klick-Funktion

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)); 
    } 
}; 

Die restlichen zwei for Schleifen sind die gleichen, außer mit einer Geschwindigkeit von Iteration Unterschiede.

Ich möchte diese drei Schleifen mit einer einzigen jQuery-Klickfunktion beenden/brechen. durch einen Klick auf eine Schaltfläche mit der ID 'stop'.

Wie kann ich das tun?

Das ist mein pen

+0

'$ ('# stop') klicken (function() { });.' ' – furball514

+0

Funktion Medium() { für (var j = 0; j <1000000; j ++) { (function main (j) { setTimeout (function() {$ (e) .trigger ("Play"); $ (e) .trigger ("rerender"); $ ('# Generation'). text ('Generation:' + j); }, 1000 * j/8); } (j)); } }; Funktion schnell() { für (var j = 0; j <100000; j ++) { (function main (j) { setTimeout (function() { $ (e) .trigger ("Play"); $ (e) .trigger ("rerender"); $ ('# Generation'). Text ('Generation:' + j); }, 1000 * j/16); } (j)); } }; ' – furball514

+0

Welchen Knopf klicken Sie, um die Schleife zu brechen? – CaptainHere

Antwort

0

dies versuchen ..

<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

funktioniert nicht, die For-Schleifen bleiben erhalten – furball514