touchstart太敏感了

时间:2012-02-21 09:34:26

标签: jquery android web-applications jqtouch

我正在使用这个非常棒的代码来模拟Android http://pervasivecode.blogspot.co.nz/2011/11/android-phonegap-active-css-pseudo.html上的触摸事件。效果很好,但太敏感了。例如,如果您有一个列表,并且当您触摸列表中任何突出显示的链接时想要向下滚动。

$(document).ready(function(){
if (navigator.userAgent.toLowerCase().indexOf("android") > -1) {
$('a')
.bind("touchstart", function () {
    $(this).addClass("fake-active");

       })
.bind("touchend", function() {
    $(this).removeClass("fake-active");
  });
 }
    });

是否可以延迟课程更改,还是可以使用其他触发器?

1 个答案:

答案 0 :(得分:1)

为避免在滚动时激活链接,您可以使用touchend触发类更改,并检查滚动(如果存在)。像这样......

if (navigator.userAgent.toLowerCase().indexOf("android") > -1){

    var scroll = 0;
    $('a').on("touchstart",function(){
        $('a').removeClass("fake-active");
    }).on("touchend",function(){
        if(scroll == 0){
            $(this).addClass("fake-active");
        }
        scroll = 0; //Ideally should be set when scrolling is finished
    });

    $('ELEMENT-THAT-IS-SCROLLING').scroll(function(){
    scroll = 1;
    });

}