2014-10-06 14 views
6

ein einfaches Berührungsstartereignis wird funktionieren, wenn Sie diese Syntax verwenden: http://jsfiddle.net/rwdu4hb9/jquery Berührungsstart funktioniert nicht auf Dokument

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

Aber wenn Sie mit $(document).on(..) Ihre Veranstaltung für alle kommenden Elemente hinzuzufügen, wie hier: http://jsfiddle.net/rwdu4hb9/1/

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

Das Ereignis wird nicht ausgelöst. Was ist falsch an diesem Anruf?

Getestet auf iPad mit iOS 8.0.2

+0

Nichts ist falsch mit Code, wo testen Sie es? – SSA

+0

iPad 3 mit iOS 8.0.2 – user3631654

Antwort

1

Aus Neugier, gibt es keinen Grund Sie click Ereignis statt touchstart verwenden zu vermeiden? Im Allgemeinen werden mobile Browser click als "Touch" -Ereignis behandeln. Ich hatte Probleme in der Vergangenheit mit Berührungen vs Klicks auf verschiedenen Geräten (gelöst w/moderniszr)

Zumindest würde ich beide Ereignisse (click und touchstart), die sowohl mobile und Desktop (Updated your fiddle - http://jsfiddle.net/srdkgL7o/)

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