hammer.js 2.0中的"hold"和"release"对应的是什么?

5
在hammer.js 1.1.3版本中,我能够完美地使用以下代码:
        var button = Hammer(element, {
            hold: true,
            release: true
        });

        button .on('hold', function() {
            //Do something when the hold event starts
        });

        button .on('release', function() {
            //Do something when the hold event stops
        });

但是在hammer.js 2.0中,我很难找到一个相应的等价物:

    var button = new Hammer.Manager(element);

    button.add(new Hammer.Press({
        event: 'press',
        pointer: 1,
        threshold: 5,
        time: 500
    }));

    button.on('press', function(event) {
        //Do something when the the element is pressed after 500ms
    });

    //Possible handler when the element is released?

根据新版hammer.js 2.0的文档(http://hammerjs.github.io/getting-started.html),它包含了5个手势识别器:
    Pan, Pinch, Press, Rotate, Swipe, Tap

我找不到一个合适的识别器来实现释放类型功能。如有任何想法、建议或意见,敬请赐教。感谢阅读!
3个回答

4

当我将事件监听器添加到pressup事件时,什么也没有发生 - 这真的被支持吗?按下(= touchstart)事件呢?我真的认为hammer.js应该在没有我听到hammer.input事件并测试它是否是第一个的情况下发出此事件... - bekay
3
我处于相同的情况。Hammer.js v2.0.4在touchstart和touchend方面与Hammer.js v1.x功能相比有所退化。在最新版本的Hammer.js中,必须使用press和pressup,如果用户在释放手指之前将手指拖动超出一定阈值,则不会触发pressup事件。 - gregtzar
3
你也可以听panend。 - Loren

1
使用“按住”和“松开”功能,成功实现了此功能。
var hammer = new Hammer(this);

hammer.on("press pressup", function (ev) {

    // Hold gesture start (press)
    if (ev.type == "press") {
        console.log("Hold active");
    }

    // Hold gesture stop (pressup)
    if (ev.type == "pressup") {
        console.log("Hold inactive");
    }
});

在 Hammer.JS v2.0.8 上进行了测试


-2

使用

$(button).on('touchend',function(e){});

适用于jQuery。


确实,这对我非常有效。谢谢@jujiyangasli - vinesh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接