layui重置倒计时模块的方法

项目场景:

在项目中使用layui工具集倒计时模块动态更新时间


问题描述:

因为需要动态改变倒计时的时间,如果不重置倒计时,会导致两个和多个时间同时闪动,因此需要每次更新时重置js计时器,从而重置上一次的倒计时组件,但layui.util没有提供相关重置方法。
代码如下:

util.countdown(endTime, serverTime, function(date, serverTime, timer){
    var str = date[0] + '天' + date[1] + '时' +  date[2] + '分' + date[3] + '秒';
    layui.$('#test').html(str);
  });

原因分析:

弄清layui倒计时的原理不难发现是使用js的 setTimeout()方法实现的,那便可以使用js的clearTimeout(),重置计时器,但该重置哪个对象呢?在layui的文档中描述了倒计时回调函数中的几个参数信息。“如果倒计时尚在运行,则每一秒都会执行一次。并且返回三个参数: date(包含天/时/分/秒的对象)、 serverTime(当前服务器时间戳或Date对象), timer(计时器返回的ID值,用于clearTimeout)”,从中可以知道我们需要在clearTimeout()函数中调用timer参数即可重置。


解决方案:

解决方案如下:
var timerout;//定义全局变量接收timer参数


clearTimeout(timerout);//每次调用倒计时时重置
util.countdown(endTime, serverTime, function(date, serverTime, timer){
    timerout=timer;//在内部将timer参数动态赋给timerout变量;
    var str = date[0] + '天' + date[1] + '时' +  date[2] + '分' + date[3] + '秒';
    layui.$('#test').html(str);
  });
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值