2013-04-15 44 views
1

我有一个音量按钮绑定到touchstart和mousedown事件,touchend和mouseup事件(我也试过touchleave和touchcancel)。Touchend和滑动手指关闭按钮

当用户将他们的手指握在按钮上并抬起他们的手指时,它按预期调用末端处理程序。但是,如果用户将他们的手指从按钮上滑下,然后举起他们的手指,事件就不会被触发(这导致无限递减或递增音量控制的问题)。

我试着将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; 
    } 
}); 

回答