Jquery plugins Hammer JS滑动日历日期

Jquery plugins Hammer JS滑动日历日期,jquery-plugins,hammer.js,Jquery Plugins,Hammer.js,我有hammer js和jquery hammer插件,可以处理非常简单的滑动动作 应该发生的是,当我向左滑动时,我有一个日历,日期可以追溯到一天,而当我向右滑动时,日期可以追溯到一天。在我刷卡的时候,它会跳几天,这取决于我刷卡的方向和时间(我猜) 当我将此函数更改为左容器和右容器上的简单单击事件时,日期按预期每次单击只提前一天 event.gesture.preventDefault(); 给出一个“非函数错误” 如何使刷卡每次只能调用此函数一次? module.exports = View

我有hammer js和jquery hammer插件,可以处理非常简单的滑动动作

应该发生的是,当我向左滑动时,我有一个日历,日期可以追溯到一天,而当我向右滑动时,日期可以追溯到一天。在我刷卡的时候,它会跳几天,这取决于我刷卡的方向和时间(我猜)

当我将此函数更改为左容器和右容器上的简单单击事件时,日期按预期每次单击只提前一天

event.gesture.preventDefault();
给出一个“非函数错误”

如何使刷卡每次只能调用此函数一次?

module.exports = View.extend({
    template: 'bookings/templates/components/body',
    className:'bookings-lists',
    deviceType: App.browser.device.deviceType,
    events: {
        'swipe' : 'swipeMe'
    },
    swipeMe: function(e){
        var that = this;
        container.hammer().on('swipeleft', function(event) {
            event.gesture.preventDefault();
            that.model.pushDateForward();
        }).on('swiperight', function(event) {
            event.gesture.preventDefault();
            that.model.pushDateBackward();
        });
    } });

我上面的评论是完全错误的。检查刷卡的方向,而不是仅仅依靠内置的“swipeleft”或“swiperight”工作。不再有多个日期更改

swipeMe: function(e){

        if(e.gesture.direction === 4)
        {
            e.preventDefault();
            this.model.pushDateBackward();
        }
        else if(e.gesture.direction === 2)
        {
            e.preventDefault();
            this.model.pushDateForward();
        }
    },

我设法将拖动锁定最小距离改为50,所以现在你必须在它改变日期之前滑动50px,这样,日期只改变一次。不理想,因为在手机上,这是一个大刷卡。欢迎提出任何其他建议。