簡體   English   中英

在do while循環的每次迭代之間添加一個短延遲

[英]add a short delay between each iteration of do while loop

我已經編寫了一個代碼來觸發我頁面上四個標簽上的點擊事件,並且循環工作正常,因為我使用循環體中編寫的警告框進行了測試。 但默認情況下,在jquery中,所有迭代都發生得如此之快,以至於無法看到發生的點擊事件。

所以我想在do while循環中添加一個短暫的延遲。 我寫的循環是:

var elets = $('label');
var n = elets.length;
var i=0;
do
{
    //setTimeout ( function() {
    var forname = elets[i].getAttribute("for");
    var selected_label = $('label[for='+forname+']');
    selected_label.trigger("click");
    i++;
    //}, 3000);
} while(i<n)

我也希望這個循環能夠不斷重復。

最簡單的解決方案是使用setTimeout 使用立即調用的命名函數,代碼可以像dofor循環一樣簡單明了:

var elets = $('label');
var n = elets.length;
var i=0;
(function doOne(){
    var forname = elets[i].getAttribute("for");
    var selected_label = $('label[for='+forname+']');
    selected_label.trigger("click");
    if (i++<n) setTimeout(doOne);
})();

你也可以使用.delay()函數

參考http://api.jquery.com/delay/

例如 :

<script>
   $( "button" ).click(function() {  
      $( "div.first").delay( 800);
   });

這里div首先會在點擊按鈕后800毫秒的間隔后進行加載。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM