2014-05-09 23 views
0

我有一個jQuery航點觸發器,我需要每隔一段時間向同一個元素添加一個新類。我如何在jQuery中設置一個類似於函數的計時器?jQuery:AddClass每秒

+0

https://developer.mozilla.org/en-US/docs/Web/API/Window.setInterval – smerny

回答

1

鑑於類和某些元素的列表,讓調用它<div id="myEl"></div>,你可以做到以下幾點:

var $el  = $('div#myEl'), 
    classes = ['red', 'green', 'blue', 'yellow'], 
    interval = window.setInterval(function() { 
     if (classes.length === 0) 
     window.clearInterval(interval); 

     $el.addClass(classes.shift()); 
    }, 1000); 

這裏有一個DEMO

的關鍵是使用window.setInterval(fn, interval),它接受一個回調函數fninterval毫秒執行一次。你會注意到我在classes數組爲空時在這裏​​添加了一個條件行。

基本上,window.setInterval函數返回一個唯一的整數id,它對應於您實例化的新時間間隔。要取消間隔(假設您不希望它永久運行),只需將此ID傳遞給window.clearInterval函數即可。在這種情況下,我想在添加classes數組中的所有類時取消間隔循環。