touchSwipe.js锚定问题

时间:2013-12-26 19:49:32

标签: javascript touch swipe

我遇到了 touchSwipe.js 没有触发 a 元素上的滑动事件的问题。我已经进行了研究,很快就找到了answer

这个解决方案非常有效,除了锚定停止表现得像他们应该表现的那样......例如打开网页,或者在JS处理时触发点击事件。

我想我错过了一些非常重要的东西。有人可以澄清吗?谢谢!

3 个答案:

答案 0 :(得分:3)

你必须重置被排除的元素

$("#test").swipe({
    swipe: function(/* stuff */){
        // do some stuff and more
    },

    // and do even more stuff

    // at the end:
    excludedElements: ""
});

它适用于我的网站。 我现在遇到的唯一问题是在默认的android浏览器元素中使用jQuery $(" a.stuff")无效。点击(。 其余的工作正常。

答案 1 :(得分:1)

答案隐藏在上面的答案中,因为它是一个组合。 能够点击/点按链接,但也可以刷你的菜单, 你需要使用可能为75的滑动阈值(不是零!) 并确保没有排除“A”元素:

$('nav#access , .bodywrapper').swipe({
        swipe: function(event, direction, distance, duration, fingerCount, fingerData) {
            // do your stuff.....
        },
        threshold: 75,
        excludedElements: ""
    });

答案 2 :(得分:0)

没有代码,我无法分辨到哪里,但听起来你有一个e.preventDefaultreturn falsee.stopPropagation阻挡了javascript中某处的正常行为,也许是滑动事件的结束,这对于大多数函数来说都是正常的和预期的,因为你想要滑动,而不是去其他地方,这就是默认情况下排除元素的原因,因为touchSwipe基本上覆盖了默认行为。

但我的问题是你真的希望元素既可点击又可刷卡? 如果是这样,请查看Tap vs Swipe,在您的滑动处理程序中,您可以放置​​以下内容:

$("#test").swipe( {
    tap:function(event, target) {
      //click events go here
    },
    threshold:75
});

或者,如果您包含jquery.ui.ipad.js plugin,则可以在touchSwipe对象的子项上拾取标准jQuery鼠标事件。 (同样来自Tap vs. Swipe页面,其中有示例,请查看。)

另外,或许可以查看touchSwipes' defaults,您可以在其中为longTapThreshhold,doubleTap,tap和triggerOnTouchLeave等设置各种值和处理程序。