Это хорошо работает. Это менеджер, который я сделал для обработки событий удержания. Имеет события для удержания и когда вы отпускаете.
function onUserHold(element, func, hold, clearfunc) {
//var holdTime = 0;
var holdTimeout;
element.addEventListener('mousedown', function(e) {
holdTimeout = setTimeout(function() {
func();
clearTimeout(holdTimeout);
holdTime = 0;
}, hold);
//alert('UU');
});
element.addEventListener('mouseup', clearTime);
element.addEventListener('mouseout', clearTime);
function clearTime() {
clearTimeout(holdTimeout);
holdTime = 0;
if(clearfunc) {
clearfunc();
}
}
}
Параметр элемента - это тот, который вы держите. Параметр func срабатывает, когда он выполняется в течение нескольких миллисекунд, указанных параметром hold. Параметр clearfunc является необязательным, и если он задан, он будет запущен, если пользователь отпускает или покидает элемент. Вы также можете сделать некоторые обходные пути, чтобы получить нужные функции. Наслаждайтесь! :)