通过使用 JavaScript,我们有能力作到在一个设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行。我们称之为计时事件。
在 JavaScritp 中使用计时事件是很容易的,两个关键方法是:
setTimeout()
未来的某时执行代码
clearTimeout()
取消
setTimeout()
实例
代码如下 | 复制代码 |
function countdown(v,oid){ if(v==true){//先用ajax取得倒计时的基数(只有第一次运行这个函数的时候才会做) $.get('json/get_countdown.php',function(data){ dtime = data;//得到秒 id = 'countdown'; t=setTimeout('countdown(false,'+oid+')',1000); }); }else if(v==false){ clearTimeout(t);//这句很重要,不加这句的话在多次刷新页面的时候,倒计时会走的更快 h=checkTime(parseInt(dtime/3600));//计算小时 m=checkTime(parseInt(dtime/60%60));//计算分钟 s=checkTime(parseInt(dtime%60));//计算秒 $('#'+id).html(h+":"+m+":"+s);//将倒计时显示在一个html标签里面 dtime=dtime-1; setTimeout('countdown(false,'+oid+')',1000); |
调用方法很简单 countdonw(v,id)即可。
再看一个
代码如下 | 复制代码 |
<title> 演示实例:倒计时效果-精确到秒 </title> <meta http-equiv="content-type" content="text/html; charset=gb2312" /> <meta name="keywords" content="" /> <meta name="description" content="" /> <script language="JavaScript"> <!-- // var overDate = 1000 * 60 * 60 * 24 * 3;//截止时间:为当前计算机时间+3天 var NowTime = new Date(); //var EndTime= new Date(2009,01,11,0,0); var EndTime= new Date(NowTime.getTime() + overDate); var EndTimeMsg = EndTime.getFullYear() + "年"; EndTimeMsg = EndTimeMsg + (EndTime.getMonth()+1) + "月"; EndTimeMsg = EndTimeMsg + (EndTime.getDate()) + "日"; EndTimeMsg = EndTimeMsg + (EndTime.getHours()) + "时"; EndTimeMsg = EndTimeMsg + (EndTime.getMinutes()) + "分"; EndTimeMsg = EndTimeMsg + (EndTime.getSeconds()) + "秒"; function GetRTime(){ NowTime = new Date(); |