0

1秒後にアラート('a')する関数を作りたいです。ただし、その 1 秒の間にこの関数が再度呼び出されると、時間カウントはリセットされます。

お気に入り

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 に答える