Ich bastle gerade an einer an einer dynamischen Website, die sowohl auf Desktop als auch auf touch-basierten Geräten (iPhone, iPad, iPod touch aber auch Androids usw.) laufen soll. Weitere Anforderungen: Alle möglichen Browser (selbst IE6, igitt), sauberes HTML / JavaScript. Für Touch-Geräte gibt's ein Multitouch-optimiertes Interface. Deshalb muss ich an einer Stelle verzweigen, ob die Anwendung per Maus oder Multitouch läuft. Die Anwendung wird per Klick gestartet.
Mein jetziger Ansatz setzt sowohl einen onclick- als auch einen ontouchstart-Handler auf dem auslösenden Node. Der ontouchstart-Handler startet die Multitouch-Anwendung und löscht den onclick-Handler. Die Annahme ist, dass bei Multitouch ontouchstart vor onclick ausgelöst wird. Das stimmt auch auf den meisten Geräten, leider nicht immer - bei einigen älteren Geräten und Versionen scheint manchmal auch der onclick zuerst getriggert zu werden (zumindest auf einem iPhone 3G mit iOS 3, das hier liegt).
Kennt jemand von Euch einen zuverlässigeren Weg, Touch-Geräte von Maus-Geräten zu trennen? Ich würde gerne darauf verzichten, den User Agent anzufassen.
Mein jetziger Ansatz setzt sowohl einen onclick- als auch einen ontouchstart-Handler auf dem auslösenden Node. Der ontouchstart-Handler startet die Multitouch-Anwendung und löscht den onclick-Handler. Die Annahme ist, dass bei Multitouch ontouchstart vor onclick ausgelöst wird. Das stimmt auch auf den meisten Geräten, leider nicht immer - bei einigen älteren Geräten und Versionen scheint manchmal auch der onclick zuerst getriggert zu werden (zumindest auf einem iPhone 3G mit iOS 3, das hier liegt).
Kennt jemand von Euch einen zuverlässigeren Weg, Touch-Geräte von Maus-Geräten zu trennen? Ich würde gerne darauf verzichten, den User Agent anzufassen.
Multigrad - 360°-Produktfotografie für den Mac