Я могу предложить для этого следующее решение. У вас может быть счетчик. onMouseDown
запустит метод, который увеличит счетчик через setInterval
и проверит, достиг ли счетчик целевого значения. Если значение будет достигнуто, он вызовет все, что вы хотите, при удержании кнопки мыши. onMouseUp
сотрет счетчик интервалов. Вот упрощенный код. Предполагая, что это методы объекта.
onMouseDown: function() {
this.launchTimer();
},
launchTimer: function() {
//Timer will update every 100ms
this.counter = 0;
this.timer = setInterval(() => {
//Assume our target value is 1s or 1000ms
if (this.counter === 1000) {
//Launch your function here
this.onMouseHold();
this.clearTimer();
} else {
this.counter += 100;
}
}, 100);
this.timer();
},
clearTimer: function() {
this.counter = 0;
clearInterval(this.timer);
},
onMouseUp: function() {
this.clearTimer();
}