Ist es möglich, Berührungsereignisse im Safari-Browser des iPad mit jQuery zu erkennen?
Ich habe die Ereignisse mouseOver und mouseOut in einer Webanwendung verwendet. Gibt es ähnliche Ereignisse für den Safari-Browser des iPad, da es keine Ereignisse wie mouseOut und mouseMove gibt?
jquery
ipad
events
mobile-safari
jquery-events
Abhishek B.
quelle
quelle
Wenn Sie jQuery 1.7+ verwenden, ist dies noch einfacher als all diese anderen Antworten.
quelle
$('#whatever').on('touchstart click', function(){ /* do something... */ });
$('#whatever').on({ 'touchstart' : function(ev){}});
,ev
scheint es keine Informationen über die Berührungen zu geben (Berührungen, Zielberührungen oder veränderte Berührungen)ev.originalEvent
.Der einfachste Ansatz ist die Verwendung einer Multitouch-JavaScript-Bibliothek wie Hammer.js . Dann können Sie Code schreiben wie:
Und du kannst weitermachen. Es unterstützt Tippen, Doppeltippen, Wischen, Halten, Transformieren (dh Kneifen) und Ziehen. Die Berührungsereignisse werden auch ausgelöst, wenn entsprechende Mausaktionen ausgeführt werden, sodass Sie nicht zwei Sätze von Ereignishandlern schreiben müssen. Oh, und Sie benötigen das jQuery-Plugin, wenn Sie wie ich auf jQueryish-Weise schreiben möchten.
quelle
Die Verwendung von Touchstart oder Touchend allein ist keine gute Lösung, da das Gerät beim Scrollen der Seite diese auch als Berührung oder Tippen erkennt. Der beste Weg, um ein Tipp- und Klickereignis gleichzeitig zu erkennen, besteht darin, nur die Berührungsereignisse zu erkennen, die den Bildschirm nicht bewegen (Scrollen). Fügen Sie dazu einfach Ihren Code zu Ihrer Anwendung hinzu:
Ich habe es getestet und es funktioniert gut für mich auf iPad und iPhone. Es erkennt das Tippen und kann das Tippen und Berühren leicht unterscheiden.
quelle
Sie können .on () verwenden , um mehrere Ereignisse zu erfassen und dann auf Berührung auf dem Bildschirm zu testen, z.
quelle
.bind
ist veraltet. Sie sollten verwenden.on
jQuery Core hat nichts Besonderes, aber Sie können auf der Seite jQuery Mobile Events Informationen zu verschiedenen Touch-Ereignissen lesen , die auch auf anderen als iOS-Geräten funktionieren.
Sie sind:
Beachten Sie auch, dass iOS-Geräte während Bildlaufereignissen (basierend auf Berührungen auf Mobilgeräten) die DOM-Manipulation während des Bildlaufs einfrieren.
quelle
Ich war ein wenig besorgt darüber, nur Touchmove für mein Projekt zu verwenden, da es nur dann ausgelöst wird , wenn sich Ihre Berührung von einem Ort zum anderen bewegt (und nicht bei der ersten Berührung). Also habe ich es mit Touchstart kombiniert , und dies scheint für die erste Berührung und alle Bewegungen sehr gut zu funktionieren.
quelle
document.getElementById("ttime").innerHTML = ((new Date()) - touchTime); touchTime = new Date();
Ich habe gerade das GitHub jQuery Touch Events-Plugin von benmajor für die Versionen 1.4 und 1.7+ von jQuery getestet. Es ist leicht und funktioniert perfekt mit beiden
on
undbind
bietet gleichzeitig Unterstützung für eine umfassende Reihe von Berührungsereignissen.quelle