在hammer.js 2.0中多次滑动事件调用

问题描述 投票:2回答:1

我正在实现hammer.js滑动功能来更改我的滑块图像。它的工作原理,但有时它可以触发多次滑动事件进行单次滑动?

当我向某个时候向左滑动时,它会发生左右滑动事件。滑动右侧事件也是如此。

我怎样才能解决这个问题。

var mc = new Hammer.Manager(el);
var pan = new Hammer.Pan();
var swipe = new Hammer.Swipe();
mc.add([ pan ]);
mc.add(swipe).recognizeWith(mc.get('pan'));

mc.on("panstart panmove", onPan);
mc.on("swipeleft swiperight", onSwipe);

function onSwipe(ev) {

    if (ev.type == 'swipeleft') 
    {
        var currentPage = $('#' + pageStepInputId).val();
        var totalPage = parseInt($('#' + pageCountLabelId).text());
        if (currentPage == totalPage) 
        {
            return 0;
        }
        transform.translateX = -elParent.offsetWidth * 1.5;
        requestElementUpdate();
        $('.image-loading-indicator').show();
        $(el).one("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function() 
                {
                    attachmentPreview.next(callComponentId, pageStepInputId, pageCountLabelId);
                });

        console.log('swipeleft', count++);
        ev.srcEvent.stopPropagation()


    } else if (ev.type == 'swiperight') {

        if ($('#' + pageStepInputId).val() >= 2) 
        {
            transform.translateX = elParent.offsetWidth * 1.5;
            requestElementUpdate();
            $('.image-loading-indicator').show();
            $(el).one("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function() 
                    {
                        attachmentPreview.previous(callComponentId, pageStepInputId);
                    });
        }

    }
}
javascript hammer.js
1个回答
0
投票

FWIW,我发现我发现了多个Hammer事件,因为我无意中为同一事件安装了多个处理程序。值得检查你的控制流程是不是一样的。

© www.soinside.com 2019 - 2024. All rights reserved.