2015-02-24 3 views
5

Attualmente, per il rilevamento di dispositivi touchscreen che uso nel mio javascript:createTouch vs ontouchstart - il modo migliore per rilevare i dispositivi touchscreen?

if ('createTouch' in document) { 
// do touchscreen-specific stuff 
} 

vedo che molti sviluppatori utilizzano ontouchstart, in questo modo:

if ('ontouchstart' in document) { 
// do touchscreen-specific stuff 
} 

Qual è la differenza tra createTouch e ontouchstart? Qual è il più sicuro da usare? Ci sono altre alternative semplici e affidabili a questi due?

risposta

3

touchstart evento viene generato quando un punto di contatto è posto sulla superficie tattile ([MDN] [1])

createTouch metodo crea e restituisce un nuovo oggetto Touch. ([MDN] [2])

Il modo migliore dal mio punto di vista è rilevare l'esistenza dell'evento nella finestra piuttosto che crearlo.

Inoltre, la tua dichiarazione controlla solo gli eventi di tocco esistenti in oggetto finestra, non touch screen, come i telefoni Windows, quindi probabilmente vorrai controllare anche gli eventi puntatore.

P.S .: Guarda la libreria Modernizr che ha il rilevamento "tocco" e molto altro.

2

ontouchstart trigger basato su eventi. Sarà invocato quando l'utente esegue un'azione. Maggiori informazioni allo ontouchstart event. Quindi, è più efficiente per l'esecuzione di azioni basate sull'utente.

Mentre createtouch verrà richiamato, non importa se l'utente ha fatto qualche azione o meno. Qualcuno, per favore, correggimi, se sbaglio. :)