この問題に対して、より洗練された解決策があることを願っています。基本的に、私はタッチスクリーンキオスクで実行されるHTML/Javascriptアプリを持っています。誰かが指をドラッグしてボタンのリストをスクロールしている場合、デフォルトのクリック動作を防止しようとしています。最初は、スワイプイベントを検出したときにDefaultを防止しようとしました。しかし、それから、それは実際には長いマウスダウンほどスワイプイベントではないことに気づきました。だから私は次のコードを書きました:
var downClick;
var startTime;
$(".TPGSW-wrapper").on('mousedown', function () {
downClick = new Date();
startTime = downClick.getTime();
});
$(".TPGSW-wrapper").on('mouseup', function () {
var upClick = new Date();
var endTime = upClick.getTime();
if (endTime - startTime < 250) {
return false;
} else if (endTime - startTime >= 300) {
// This is the action that I can't seem to get to work.
// I would like it to stop the click event. I also tried mouseup
this.on('click', function () { preventDefault; });
}
});
これはマウスダウンの時間を正しく測定しますが、クリックイベントの発生を止めることができないようです。何か考えや提案はありますか?私はjqueryとこれをWebkitブラウザにのみ使用しています。前もって感謝します!