0

我想制作在 1 秒后会提醒('a')的功能。但是如果在这 1s 内再次调用该函数,则计时会被清零。

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;
}

但它没有像我预期的那样工作。

4

1 回答 1

1

我不确定这是否是您正在寻找的...

var timer = null;
function startBid(){
    clearTimeout(timer);
    timer = setTimeout(bid, 1000);
}
于 2013-02-25T23:08:00.563 回答