我有一个jQuery航点触发器,我需要每隔一定时间向同一个元素添加一个新类。我如何在jQuery中设置类似函数的计时器?
答案 0 :(得分: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)
,它接受每fn
毫秒执行的回调函数interval
。您会注意到我在classes
数组为空时添加了条件行。
基本上,window.setInterval
函数返回一个唯一的整数id,它对应于您实例化的新区间。要取消间隔(假设您不希望它永远运行),只需将此id传递给window.clearInterval
函数即可。在这种情况下,我想在classes
数组中添加所有类时取消间隔循环。