сенсорный запуск слишком чувствительный - PullRequest
3 голосов
/ 21 февраля 2012

Я использую этот потрясающий фрагмент кода для имитации сенсорных событий на 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 Ответ

1 голос
/ 07 мая 2013

Чтобы избежать активации ссылок при прокрутке, вы можете использовать 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;
    });

}
...