我正在实施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);
});
}
}
}
答案 0 :(得分:0)
FWIW,我发现我正在触发多个Hammer事件,因为我无意中为同一事件安装了多个处理程序。值得检查一下您的控制流是否在做同样的事情。