锤子.js 2.0 使用 jquery 插件时不返回事件选项

hammer.js 2.0 not returning event options when using jquery plugin?

本文关键字:返回 事件 选项 插件 jquery js 使用 锤子      更新时间:2023-09-26

我正在使用锤子.js使用panstart/panend导航旋转菜单。我需要获取平移的距离,并且在使用以下代码时可以正常工作(并按预期记录距离/增量/方向):

var myElement = document.getElementById('footer');
var mc = new Hammer(myElement);
mc.on("panstart panend", function(ev) {
    console.log(ev.type);
    if(ev.type=='panend')
    {
        console.log('distance: ' + ev.distance);
        console.log('delta x: ' + ev.deltaX);
        console.log('direction: ' + ev.direction);
    }
});

但是,当我使用以下代码(包含锤子jquery脚本)时,我正确记录了ev.type,但距离/deltax/方向都是未定义的:

$('#wrapper').hammer().on("panstart panend", "#footer", function(ev){
    console.log(ev.type);
    if(ev.type=='panend')
    {
        console.log('distance: ' + ev.distance);
        console.log('delta x: ' + ev.deltaX);
        console.log('direction: ' + ev.direction);
    }
});

我不明白为什么会这样,因为代码是相同的,并且在使用 jquery 时触发了正确的 ev.type 事件。谁能解释一下我在使用 jquery 时如何获得距离等(我需要在动态添加的元素上使用它,因此我为什么要使用 jquery 插件)?

谢谢大家,

戴夫

.gesture添加到ev.distance/deltaX/direction控制台日志命令:

$('#wrapper').hammer().on("panstart panend", "#footer", function(ev){
    console.log(ev.type);
    if(ev.type=='panend')
    {
        console.log('distance: ' + ev.gesture.distance);
        console.log('delta x: ' + ev.gesture.deltaX);
        console.log('direction: ' + ev.gesture.direction);
    }
});