2014-02-18 37 views
2

我想在我的li上添加touchstart事件而不禁用父级上的滚动。无法在touchstart上滚动

目前,它的工作原理。我有滚动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(); 
    ... 
}); 

回答

2

看看这个jQuery touchSwipe plugin

它可以让你检测是否是一个长触摸或短触摸,可以为你解决问题。

例如为:

$(function() { 

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

}); 

而且可以使页面滚动和定义它是如何处理的:

Page scrolling demo