如何区分滚动事件和长按事件?

时间:2018-10-24 11:18:01

标签: javascript mobile javascript-events

问题:

SomeDomElement.addEventListener('touchstart', function preventLongPress(event) {

                  if (event.touches.length >=1) event.preventDefault();
                }, false);

如果我使用的是:如果(event.touches.length> = 1)event.preventDefault(); ,那么这将防止长按事件,但也会禁用滚动事件。

长按没有触摸或触摸事件。

我想要的是:

防止长按,但不要阻止滚动

N ote::我仅使用香草javascript,没有jquery

1 个答案:

答案 0 :(得分:1)

希望这会对您有所帮助。

document.addEventListener("touchstart", function(){
    detectTap = false;
});
document.addEventListener("touchmove", function(){
    detectTap = true;
});
document.addEventListener("touchend", function(){
    if(detectTap)
        alert("scrolled"); /* here add whatever functionality you wants */
    else 
        alert("long pressed"); /* here add whatever functionality you wants */
});