1 秒后按住按钮并使用 jQuery 循环操作

hold down button after 1 second and loop the action using jQuery

我从以下位置获得此代码:Jquery: mousedown effect (while left click is held down) 它的行为是,如果我每 50 毫秒按住一次按钮,它就会执行某些操作。

var timeout = 0;
$('#button_add').mousedown(function () {
    timeout = setInterval(function () {
        value_of_something ++;
    }, 50);
    return false;
    });
});

但是我想要的是按住按钮1秒后执行这部分,它会连续50ms做这个动作。

正如我所说,您需要使用 setTimeout()

var timeout = 0;
$('#button_add').mousedown(function () {
    setTimeout(function(){
      timeout = setInterval(function () {
                   value_of_something ++;
                }, 50);         
    } , 1000);
    return false;
});

Jsfiddle

请使用此代码...当用户鼠标弹起时您必须清除超时:

var timeout = 0;

$('#button_add').mousedown(function() {
    oneSecondTimer = setTimeout(function() {
        timeout = setInterval(function() {
            value_of_something++;
        }, 50);
    }, 1000);

    return false;
});

$("#button_add").mouseup(function() {
    clearTimeout(oneSecondTimer);
});