2011-12-29 15 views
6

JSFiddle से पाश के प्रत्येक यात्रा:http://jsfiddle.net/KH8Gf/27/देरी एक निश्चित समय

कोड:

$(document).ready(function() 
{ 
$('#expand').click(function() 
    { 
     var qty= $('#qty').val(); 

     for (var counter = 0; counter < qty; counter++) 
     { 
      $('#child').html($('#child').html() + '<br/>new text');    
     } 
    }); 
}); 

मैं कैसे एक निश्चित समय से लूप के प्रत्येक यात्रा में देरी कर सकते हैं?

मैं की असफल कोशिश के बाद:

setTimeout(function(){ 
$('#child').html($('#child').html() + '<br/>new text'); 
},500); 

और

$('#child').delay(500).html($('#child').html() + '<br/>new text'); 

उत्तर

9

इन मामलों सब एक स्थानीय समारोह में आपरेशन डाल और फिर उस स्थानीय समारोह setTimeout() से लागू करने के लिए फोन करके सबसे अच्छा काम करने लगते हैं आपकी देरी जावास्क्रिप्ट में बंद के चमत्कार के कारण, स्थानीय समारोह ताकि आप अपने पाश का ट्रैक इस तरह वहाँ गिनती रख सकते यह ऊपर के स्तर पर सभी चर के लिए उपयोग हो जाता है:

$(document).ready(function() { 
    $('#expand').click(function() { 
      var qty = $('#qty').val(); 
      var counter = 0; 
      var child = $('#child'); 

      function next() { 
       if (counter++ < qty) { 
        child.append('<br/>new text');    
        setTimeout(next, 500); 
       } 
      } 
      next(); 
     }); 
}); 
+2

आप 'setTimeout बढ़ना चाहिए (अगले, 500); अगर ब्लॉक में। –

+2

@ जोसेफ सिल्बर - सही - thx। बहुत तेज़ टाइप करने की कोशिश कर रहा है (एसओ पर पोस्ट करने की दौड़ मुझे यह करती है)। – jfriend00

+0

@ jfriend00 +1 और यह काम किया। मैं आधा रास्ते टाइप भी नहीं किया गया था :( – gideon

संबंधित मुद्दे