2013-04-15 3 views
1

У меня есть кнопки громкости, которые привязаны к событиям touchstart и mousedown, а также событиям touchhend и mouseup (я также пробовал touchleave и touchcancel).Кнопка Touchend и Sliding Finger Off

Когда пользователь удерживает свой палец на кнопке и поднимает их палец, он вызывает конечный обработчик, как ожидалось. Однако, если пользователь выталкивает свой палец из кнопки, а затем поднимает палец, событие никогда не срабатывает (что вызывает проблему бесконечно уменьшающегося или увеличивающегося регулятора громкости).

Я попытался привязать событие touchhend к объекту window, который, кажется, ничего не делает. Вот что у меня есть на данный момент:

$('#volume-wrap button').on('touchstart mousedown', function() { 
    if (this.id == 'volume-down') 
     volume_timer = setInterval(function(){main.hud.adjustVolume('down')}, 100); 
    else 
     volume_timer = setInterval(function(){main.hud.adjustVolume('up')}, 100); 
}); 

$(window).on('touchend mouseup', function() { 
    if (volume_timer) { 
     clearInterval(volume_timer); 
     volume_timer = 0; 
    } 
}); 

ответ