2014-10-06 30 views
6

proste wydarzenie touchstart będzie działać, jeśli używasz tej składni: http://jsfiddle.net/rwdu4hb9/jquery touchstart nie pracuje nad dokumentem

$(function(){ 
    $('.test').on('touchstart', function(){ 
     alert("Clicked"); 
    }); 
}); 

Ale jeśli chcesz dodać wydarzenie dla wszystkich kolejnych elementów z $(document).on(..) jak tutaj: http://jsfiddle.net/rwdu4hb9/1/

$(function(){ 
    $(document).on('touchstart', '.test', function(){ 
     alert("Clicked"); 
    }); 
}); 

Zdarzenie nie zostanie wyzwolone. Co jest nie tak z tym połączeniem?

Testowane na iPada z iOS 8.0.2

+0

Nic nie jest z kodem, gdzie testujesz? – SSA

+0

iPad 3 z iOS 8.0.2 – user3631654

Odpowiedz

1

Z ciekawości, czy jest jakiś powód, dla którego unikają korzystania click imprezę zamiast touchstart? Ogólnie przeglądarki mobilne będą obsługiwać click jako wydarzenie dotykowe. Miałem problemy w przeszłości z akcentami vs. kliknięć na różnych urządzeniach (rozwiązane w/modernizr)

Przynajmniej chciałbym wiązać oba wydarzenia (click i touchstart), która będzie obsługiwać zarówno mobilnych i stacjonarnych (zaktualizował twoje skrzypce - http://jsfiddle.net/srdkgL7o/)

$(function(){ 
    $(document).on('touchstart click', '.test', function(e){ 
     e.stopPropagation(); //stops 'ghost clicks' (double clicking) 
     alert("Clicked"); 
    }); 
});