我有一个音量按钮,绑定到 touchstart 和 mousedown 事件,以及 touchend 和 mouseup 事件(我也尝试过 touchleave 和 touchcancel)。
当用户将手指放在按钮上并抬起手指时,它会按预期调用结束处理程序。但是,如果用户将手指从按钮上滑开然后抬起手指,则该事件永远不会被触发(这会导致音量控制无限减小或增大的问题)。
我已经尝试将 touchend 事件绑定到窗口对象,这似乎没有做任何事情。这是我目前所拥有的:
$('#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;
}
});