2

我想在不禁用父级滚动的情况下添加touchstart事件。li

目前,它有效。我有滚动timeline,我可以点击li

添加时touchstart,我可以单击其中一个li,这比click在手机上要好。但问题是,我不能再滚动了timeline...

我可以区分 touchstart、长按、touchmove 或类似的东西吗?

<ul id="timeline">
  <li></li>
  <li></li>
  ...
  <li></li>
  <li></li>
</ul>

$("#timeline").find(" > li").on("click", function(e){
   e.preventDefault();
   ...
});

我想使用:

$("#timeline").find(" > li").on("touchstart click", function(e){
   e.preventDefault();
   ...
});
4

1 回答 1

2

看看这个jQuery touchSwipe 插件

它可以让您检测是长触摸还是短触摸可以为您解决问题。

例如:

$(function() {  

    $("#timeline").find(" > li").swipe( {
        longTap:function(event, target) {
            event.preventDefault();
            // further code
        },
        allowPageScroll: "auto"
    });

});

此外,您可以启用页面滚动并定义其处理方式:

页面滚动演示

于 2014-02-18T14:24:20.143 回答