jquery定时器封装

前端开发很多时候都需要使用到定时器,定时器写法非常简单,只需要setTimeout()、clearTimeout()这两个方法就可以制作了。

定时器的停止时通过 由 setTimeout() 返回的 ID 值 进行取消,当页面有多个定时器时调用的又是同一个定时器方法就会存在定时器混乱,页面有多个定时器时停止定时器就是个难题,所以需要把定时器封装为一个方法,然后通过方法进行定时器的调用。


<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="js/jquery-1.9.1.js" ></script>
		<script>
			
			$(function(){
				var timeww = new timerFun("#showTime");// 创建定时器对象 ,设置定时器显示位置
				$("#btnStart").click(function(){ //启用定时器
					timeww.startFun();//启用定时器
				})
				$("#btnStop").click(function(){
					timeww.stopFun();//停止器定时器
				})
				
				
			})
			/*定时器*/
			var timerFun = function(obj){
				var timer; //设置定时器变量
				var times = 0; //定时器时间,默认从0开始
				//调用定时器
				this.startFun = function(){
					timerStart();
				}
				//停止定时器
				this.stopFun = function(){
					timerEnd()
				}
				//开始定时器
				var timerStart = function(){
					times ++; //时间自动加1;
					$(obj).val(times);//修改定时器显示内容
					//if(times<num){ //当时间小于指定的时间就执行定时器,否则就清除定时器
						timer = setTimeout(function(){
							timerStart();//执行开始定时器方法
						},1000);
					//}else{
					//	timerEnd(); //结束定时器方法;
					//}
				}
				
				//结束定时器
				var timerEnd= function(){
					//times = 0; //恢复定时器时间为0,让定时器从0开始计算;
					clearTimeout(timer); //清除定时器
					//timerStart();//执行开始定时器方法
				}
			}
			
		</script>
	</head>
	<body>
		定时器:<input type="text" class="" id="showTime" />
		<input type="button" name="btnStart" id="btnStart" value="开始计时" />
		<input type="button" name="btnStop" id="btnStop" value="停止计时"/>
	</body>
</html>



提供了三个函式 1 everyTime 时间间隔 [计时器名称] 函式名称 [次数限制] [等待函式程序完] 2 oneTime 时间间隔 [计时器名称] 呼叫的函式 3 stopTime [计时器名称] [函式名称] everyTime 时间间隔 [计时器名称] 函式名称 [次数限制] [等待函式程序完] 每1秒执行函式test function test { do something } $ "body" everyTime "1s" test ; 每1秒执行 $ "body" everyTime "1s" function { do something } ; 每1秒执行 并命名计时器名称为A $ "body" everyTime "1s" "A" function { do something } ; 每20秒执行 最多5次 并命名计时器名称为B $ "body" everyTime "2das" "B" function { do something } 5 ; 每20秒执行 无限次 并命名计时器名称为C 若时间间隔抵到 但函式程序仍未完则需等待执行函式完后再继续计时 $ "body" everyTime "2das" "C" function { 执行一个会超过20秒以上的程式 } 0 true ; oneTime 时间间隔 [计时器名称] 呼叫的函式 倒数10秒后执行 $ "body" oneTime "1das" function { do something } ; 倒数100秒后执行 并命名计时器名称为D $ "body" oneTime "1hs" "D" function { do something } ; stopTime [计时器名称] [函式名称] 停止所有的在$ "body" 上计时器 $ "body" stopTime ; 停止$ "body" 上名称为A的计时器 $ "body" stopTime "A" ; 停止$ "body" 上所有呼叫test 的计时器 $ "body" stopTime test ; 自定义时间单位 打开源代码 找到 powers: { Yeah this is major overkill "ms": 1 "cs": 10 "ds": 100 "s": 1000 "das": 10000 "hs": 100000 "ks": 1000000 }">提供了三个函式 1 everyTime 时间间隔 [计时器名称] 函式名称 [次数限制] [等待函式程序完] 2 oneTime 时间间隔 [计时器名称] 呼叫的函式 3 stopTime [计时器名称] [函式名称] [更多]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值