1

touchstart イベントと mousedown イベント、および touchend イベントと mouseup イベントにバインドするボリューム ボタンがあります (touchleave と touchcancel も試しました)。

ユーザーがボタンに指を置いたまま指を離すと、期待どおりに終了ハンドラーが呼び出されます。ただし、ユーザーがボタンから指をスライドさせて離した場合、イベントは発生しません (これにより、ボリューム コントロールが無限に減少または増加するという問題が発生します)。

touchend イベントを 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;
    }
});
4

1 に答える 1

0

touchstart イベントに e.preventDefault() を追加してみてください。Android ブラウザにバグがあります。

参照: http://code.google.com/p/android/issues/detail?id=4549

更新: より良い説明については、SystemParadox の回答を参照してください: https://stackoverflow.com/a/11613327/757086

于 2013-11-14T14:21:32.907 に答える