js setTimeout定时任务实现与问题

本文深入讲解了JavaScript中setTimeout和setInterval的使用方法,包括常见问题及解决方案,如传参失效的处理技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

setTimeout用于指定时间后运行函数或表达式 => clearTimeout用于阻止函数的执行

setInterval用于按指定周期循环运行函数或表达式 => setInterval() 方法会不停地调用函数,直到clearInterval() 被调用或窗口被关闭

1、setTimeout一般实现方法

(1) 3 秒(3000 毫秒)后弹出 "Hello" :

setTimeout(function(){ alert("Hello"); }, 3000);

(2) 鼠标放在图片上1s后show出Hello!,小于1s则不显示

$('#image').mouseover(function(){

    myVar = setTimeout(alertFunc, 1000);

})

function alertFunc() { alert("Hello!"); }

$('#image').mouseout(function(){

    clearTimeout(myVar);

})

 

2、setTimeout传参时会失效

问题:myVar = setTimeout(alertFunc(xx), 1000);  当传入参数xx时,setTimeout会失效,alertFunc(xx)会立即执行

解决方法:(1)用匿名函数包裹  (2)用引号包裹需调用的函数 

参考:https://www.cnblogs.com/shifu204/p/7001924.html

参考:http://www.manongjc.com/article/143583.html

(1)myVar = setTimeout(function(){alertFunc(xx)}, 1000); 

(2)myVar = setTimeout("alertFunc('+xx+')", 1000); 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值