2014-02-18 77 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