jQuery/JS无限定时循环
jQuery/JS infinite timed loop
我试图在不同时间在屏幕上的不同元素上创建一系列点击。我可以很容易地做到这一点,使用setTimeout函数,但我需要使这一个无限循环!?
下面是我目前如何处理代码的一个片段。
setTimeout(function () {jQuery('.CR_1').trigger('click');}, 1000);
setTimeout(function () {jQuery('.CR_1').trigger('click');}, 5000);
setTimeout(function () {jQuery('.CR_2').trigger('click');}, 5500);
有什么好主意吗?
编辑:让我更清楚一点。我试着一遍又一遍地以相同的顺序运行函数集。setInterval工作得很好。很抱歉给你造成了任何困惑。
setInterval ( "flips ()", 12000 );
function flips (){
setTimeout(function () {jQuery('.CR_1').trigger('click');}, 1000);
setTimeout(function () {jQuery('.CR_1').trigger('click');}, 5000);
setTimeout(function () {jQuery('.CR_2').trigger('click');}, 5500);
}
从函数中调用setTimeout
。
setTimeout(callMe, 1000);
function callMe() {
jQuery('.CR_1').trigger('click');
setTimeout(callMe, 1000);
}
您也可以使用setInterval
,但我更喜欢这样做,因为它将在上次运行后1000毫秒被调用,而不是每1000毫秒调用一次,无论运行多长时间(如果进程是同步的)。
clicky()
function clicky() {
setTimeout(function () {jQuery('.CR_1').trigger('click');}, 1000);
setTimeout(function () {jQuery('.CR_1').trigger('click');}, 5000);
setTimeout(function () {jQuery('.CR_2').trigger('click');clicky()}, 5500);
}
我认为你应该用setInterval
而不是setTimeout
为什么不使用setInterval呢?
var delayedFunctions = [
[1000,function(){ ... }],
[5000,function(){ ... }],
[5500,function(){ ... }]
];
var fIndex = 0;
function runDelayedFunctions(){
var details = delayedFunctions[fIndex];
setTimeout( function(){
details[1].call(this);
if (++fIndex >= delayedFunctions.length) fIndex=0;
runDelayedFunctions();
}, details[0] );
};
runDelayedFunctions();
相关文章:
- jQuery:循环一个具有不同超时值的循环
- 在循环中分配json值时,值被覆盖
- 如何在下面的ES6循环中获得前面的文本
- 定时循环,使用Javascript在2个循环之间间隔x秒
- 定时循环,间隔10秒
- 用于异步函数中的循环和定时问题
- 在两次java定时器循环后重定向访问者
- 如何禁用具有定时循环的按钮
- WPF循环倒计时定时器
- javascript带setTimeout的定时循环不起作用
- Jquery循环用于定时横幅动画
- 为什么在间隔循环中定时器实例中的属性未定义
- jQuery/JS无限定时循环
- 在javascript中结合for循环和定时事件
- 在多个循环中使用定时器控件(例如setTimeout)
- 从定时循环中中断javascript的执行
- Meteor / Node.js:多个http请求在一个for循环中,均匀地跨越一个定时间隔
- javascript中的循环定时
- 开始一个定时器时钟后,另一个和循环它使用javascript
- 在JavaScript中使用getElementsByName,元素的数量在定时循环中不断增加.为什么