JQuery 定时器 (Jquery Timer 插件) 下载及示例

jQuery Timers插件地址:
http://plugins.jquery.com/project/timers

JQuery Timers应用知识
提供了三个函式
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
  }

 

Java代码   收藏代码
  1. jQuery.fn.extend({  
  2.             everyTime : function(interval, label, fn, times, belay) {  
  3.                 return this.each(function() {  
  4.                             jQuery.timer.add(this, interval, label, fn, times,  
  5.                                     belay);  
  6.                         });  
  7.             },  
  8.             oneTime : function(interval, label, fn) {  
  9.                 return this.each(function() {  
  10.                             jQuery.timer.add(this, interval, label, fn, 1);  
  11.                         });  
  12.             },  
  13.             stopTime : function(label, fn) {  
  14.                 return this.each(function() {  
  15.                             jQuery.timer.remove(this, label, fn);  
  16.                         });  
  17.             }  
  18.         });  
  19.   
  20. jQuery.extend({  
  21.     timer : {  
  22.         guid : 1,  
  23.         global : {},  
  24.         regex : /^([0-9]+)\s*(.*s)?$/,  
  25.         powers : {  
  26.             // Yeah this is major overkill...  
  27.             'ms' : 1,  
  28.             'cs' : 10,  
  29.             'ds' : 100,  
  30.             's' : 1000,  
  31.             'das' : 10000,  
  32.             'hs' : 100000,  
  33.             'ks' : 1000000  
  34.         },  
  35.         timeParse : function(value) {  
  36.             if (value == undefined || value == null)  
  37.                 return null;  
  38.             var result = this.regex.exec(jQuery.trim(value.toString()));  
  39.             if (result[2]) {  
  40.                 var num = parseInt(result[1], 10);  
  41.                 var mult = this.powers[result[2]] || 1;  
  42.                 return num * mult;  
  43.             } else {  
  44.                 return value;  
  45.             }  
  46.         },  
  47.         add : function(element, interval, label, fn, times, belay) {  
  48.             var counter = 0;  
  49.   
  50.             if (jQuery.isFunction(label)) {  
  51.                 if (!times)  
  52.                     times = fn;  
  53.                 fn = label;  
  54.                 label = interval;  
  55.             }  
  56.   
  57.             interval = jQuery.timer.timeParse(interval);  
  58.   
  59.             if (typeof interval != 'number' || isNaN(interval) || interval <= 0)  
  60.                 return;  
  61.   
  62.             if (times && times.constructor != Number) {  
  63.                 belay = !!times;  
  64.                 times = 0;  
  65.             }  
  66.   
  67.             times = times || 0;  
  68.             belay = belay || false;  
  69.   
  70.             if (!element.$timers)  
  71.                 element.$timers = {};  
  72.   
  73.             if (!element.$timers[label])  
  74.                 element.$timers[label] = {};  
  75.   
  76.             fn.$timerID = fn.$timerID || this.guid++;  
  77.   
  78.             var handler = function() {  
  79.                 if (belay && this.inProgress)  
  80.                     return;  
  81.                 this.inProgress = true;  
  82.                 if ((++counter > times && times !== 0)  
  83.                         || fn.call(element, counter) === false)  
  84.                     jQuery.timer.remove(element, label, fn);  
  85.                 this.inProgress = false;  
  86.             };  
  87.   
  88.             handler.$timerID = fn.$timerID;  
  89.   
  90.             if (!element.$timers[label][fn.$timerID])  
  91.                 element.$timers[label][fn.$timerID] = window.setInterval(  
  92.                         handler, interval);  
  93.   
  94.             if (!this.global[label])  
  95.                 this.global[label] = [];  
  96.             this.global[label].push(element);  
  97.   
  98.         },  
  99.         remove : function(element, label, fn) {  
  100.             var timers = element.$timers, ret;  
  101.   
  102.             if (timers) {  
  103.   
  104.                 if (!label) {  
  105.                     for (label in timers)  
  106.                         this.remove(element, label, fn);  
  107.                 } else if (timers[label]) {  
  108.                     if (fn) {  
  109.                         if (fn.$timerID) {  
  110.                             window.clearInterval(timers[label][fn.$timerID]);  
  111.                             delete timers[label][fn.$timerID];  
  112.                         }  
  113.                     } else {  
  114.                         for (var fn in timers[label]) {  
  115.                             window.clearInterval(timers[label][fn]);  
  116.                             delete timers[label][fn];  
  117.                         }  
  118.                     }  
  119.   
  120.                     for (ret in timers[label])  
  121.                         break;  
  122.                     if (!ret) {  
  123.                         ret = null;  
  124.                         delete timers[label];  
  125.                     }  
  126.                 }  
  127.   
  128.                 for (ret in timers)  
  129.                     break;  
  130.                 if (!ret)  
  131.                     element.$timers = null;  
  132.             }  
  133.         }  
  134.     }  
  135. });  
  136.   
  137. if (jQuery.browser.msie)  
  138.     jQuery(window).one("unload", function() {  
  139.                 var global = jQuery.timer.global;  
  140.                 for (var label in global) {  
  141.                     var els = global[label], i = els.length;  
  142.                     while (--i)  
  143.                         jQuery.timer.remove(els[i], label);  
  144.                 }  
  145.             });  

示例:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js" type="text/javascript"></script>

<script src="http://files.cnblogs.com/dachie/jquery.timers-1.2.js" type="text/javascript"></script>

<script>

        function check() {
            $("#Button1").attr("disabled", true);
            $("#Button1").val("正在提交,请稍等3秒.....");
            $('body').oneTime('3s', function() {
                $("#Button1").attr("disabled", false);
                $("#Button1").val("测试提交");
            });
        }

    </script>

<input id="Button1" οnclick="check();return false;" value="测试提交" type="submit" name="Button1">

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供了三个函式 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、付费专栏及课程。

余额充值