我希望有一个更优雅的解决方案来解决这个问题。基本上,我有一个 HTML / Javascript 应用程序,它将在触摸屏信息亭上运行。如果有人通过拖动手指滚动按钮列表,我试图阻止默认点击行为。起初,当它检测到滑动事件时,我试图阻止默认。但后来我突然想到,这并不是真正的滑动事件,而是长时间的鼠标按下。所以我写了以下代码:
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 浏览器。提前致谢!