代码之家  ›  专栏  ›  技术社区  ›  Espen

防止在触摸事件后执行单击事件

  •  1
  • Espen  · 技术社区  · 12 年前

    简单解释一下,我有这个代码:

    $(".button").swipe({
        swipe: function () {
            $("#output").append("You swiped!");
        }
    }).click(function () {
        $("#output").append("You clicked!");
    });
    

    我希望能够处理我的元素(TouchSwipe插件)上的滑动和单击。问题是触摸也是点击。所以,如果我刷,我会首先得到“你刷了!”,然后是“你点击了!”。只需单击即可。

    如果.swipe()已经执行,是否可以停止执行.click()?当然,每次都必须这样做。

    1 回复  |  直到 12 年前
        1
  •  1
  •   Dennis Jamin    12 年前

    根据您提供的实现,我猜您使用的是jQueryTouchSwipe插件,对吗?

    没错,你注意到你在使用jQuery TouchSwipe插件,我的错:)

    您应该使用TouchSwipe tap事件,而不是jQuery点击事件(它不考虑其他插件事件)。这种实现有助于区分点击和滑动事件,并确保只执行一个。

    jQuery(function()
    {
        jQuery('.button').swipe({
            tap: function()
            {
                alert('tapped');
            },
            swipe: function(event, direction, distance, duration, fingerCount)
            {
                alert('swiped');            
            }
        });
    });
    

    演示: http://jsfiddle.net/bsmayh1q/

    推荐文章