js实现可刷新的简易计时器

由于我系统的需求,需要一个计时器功能,并且当input焦点变化时刷新,当超过最大时长之后执行某表单保存方法。现将此段代码记录下来:

<body>
    <input type="text" id="lable" readonly/>
    <input type="text" name="demo-input" style="width: 500px" placeholder="任何input框获得或失去焦点时,视为正在操作,计时器将重置" />
</body>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
(function(){
    timing(function(){
        $('#lable').val('Successful auto saved!');
    },5);
})();
/**
 * 计时器方法
 * 
 * @param  {function} save    自定义save方法,时间超过max后自动执行此方法
 * @param  {int} maxTime 最大时间
 * @return {int} k       可通过返回值k通过clearInterval(k)关闭定时器
 */
function timing(save,maxTime){
    var timer = 0,
        clear = function(){
            timer = 0;
        },
        save_clear = function(){
            save();
            clear();
        };

    $('input').focus(function(){
        clear();
    }).blur(function(){
        clear();
    })

    return setInterval(function(){
        $('#lable').val(maxTime - timer);
        timer >= maxTime ? save_clear() : timer += 1;
    },1000);
}
</script>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值