你上面那样写只会造成死循环。
成都创新互联专注于宽城企业网站建设,响应式网站,电子商务商城网站建设。宽城网站建设公司,为宽城等地区提供建站服务。全流程专业公司,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务
// 手打,可能存在一些代码写错。
// 最简单的
setTimeout(function(){
document.getElementById("buyNowAddCart").click()
setTimeout(function(){
document.getElementById("proPopSubmit").click();
setTimeout(function(){
document.getElementById("submit-btn").click();
},1*1000)
},1*1000)
},1*1000) // 1秒
// 进阶一点,把setTimeout拆分出来,方便控制,和代码阅读。
function openTimeout(callback,second){
// 判断cb有没有,实际上完整的代码是判断是否是一个function,这里简单就判断是否为空。
callback setTimeout(callback,second*1000);
}
openTimeout(function(){
document.getElementById("buyNowAddCart").click();
openTimeout(function(){
document.getElementById("proPopSubmit").click();
openTimeout(function(){document.getElementById("submit-btn").click();},1);
}),1;
},1)
// 如果一直要循环,那么可以把这些代码放在一个方法里
function fn(){
openTimeout(function(){
document.getElementById("buyNowAddCart").click();
openTimeout(function(){
document.getElementById("proPopSubmit").click();
openTimeout(function(){
document.getElementById("submit-btn").click();
openTimeout(fn,1); // 当最后一个click完成,又开始加个定时器调用fn方法从而循环执行三个click
},1);
},1);
},1)
}
fn(); // 开始执行三个click,每过一秒
延迟执行可以使用setTimeout函数:
setTimeout(function(){
//这里写时间到后执行的代码
$("#left").click();
}, 10000);
单位是毫秒,如要设置10s后执行,这里写10000,以此类推。
在jQuery中,通过animate()可以实现元素的动画显示,但在显示的过程中,必须要考虑各种客观因素和限制性条件的存在,因此,在执行动画时,可通过stop()方法停止或delay()方法延时某个动画的执行.stop()与delay()方法的语法调用格式介绍如下:
stop()方法的格式如下:
stop([clearQueue],[gotoEnd])
这个方法的功能是停止所选元素正在执行的动画,其中可选参数[clearQueue]是一个布尔值,表示是否停止正在执行的动画,另外一个可选参数[gotoEnd]也是一个布尔值,表示是否立即完成正在执行的动画.
dylay()方法的格式如下:
delay(duration,[queueName])
这个方法的功能是设置一个延时值来推迟后续队列中动画的执行,其中参数duration为延时的时间值,单位是毫秒,可选参数[queueName]表示队列名词,即动画队列.
jquery 可以执行延时函数来决定某个函数:
在jQuery1.4中性增加的,.delay()方法允许我们将队列中的函数延时执行。它既可以推迟动画队列中函数的执行,也可以用于自定义队列。只有队列中连续的事件会延迟; 例如,不带参数的 .show() 或者 .hide()不会延迟,因为他们没有使用效果队列
延时时间(duration参数)是以毫秒为单位的,数值越大,动画越慢,不是越快。字符串 'fast' 和 'slow' 分别代表200和600毫秒的延时。
举个例子:
可以在 div id="foo" 的 .slideUp() 和 .fadeIn() 动画之间设置800毫秒的延时:
$('#foo').slideUp(300).delay(800).fadeIn(400);