2013-02-25 19 views
0

我想使功能在1秒後提醒('a')。但是如果在那1秒內,這個功能將被再次調用,時間計數將被重置。使用Javascript時間競價

bid(); 
//wait 500ms 
bid(); 
//wait 300ms 
bid(); 
//wait 1000ms 
//now would be alert('a') 

我已經試過:

$.holdTime = function(key,time) 
{ 
    var time = time ? time : 500; 

    if (!$.isArray($.mmTimeHold)) { 
     $.mmTimeHold = new Array(); 
    } 

    var isHold = $.mmTimeHold[key]; 

    $.mmTimeHold[key] = true; 
    setTimeout(function(){ 
     $.mmTimeHold[key]=false; 
    },time); 

    isHold = isHold === undefined ? false : isHold; 
    return isHold; 
}; 

$.isHold = function(key) 
{ 
    if (!$.isArray($.mmTimeHold)) { 
     $.mmTimeHold = new Array(); 
    } 
    var isHold = $.mmTimeHold[key]; 
    isHold = isHold === undefined ? false : isHold; 
    return isHold; 
} 

,但它不是如我所料工作。

回答

1

我不知道如果這是你在找什麼...

var timer = null; 
function startBid(){ 
    clearTimeout(timer); 
    timer = setTimeout(bid, 1000); 
}