Ich habe bei Safari für iPad einen ärgerlichen Fehler festgestellt, den ich nicht beheben kann.
Architektur:
Benutzeragent:
Ich habe 10 Instanzen derselben Ansicht, von denen jede eine verschachtelte Ansicht enthält, die ein Textarea-Element enthält. Aus irgendeinem Grund, wenn Sie auf den Textbereich tippen, wird der Fokus nicht zufällig ausgewählt. Ich habe gelesen, dass Safari Mobile wackelig ist, wenn Sie versuchen, Fokusereignisse auszulösen, die nicht von einem Tap / Click-Ereignis kommen, aber dies ist ein direktes Tippen und es ist immer noch nicht zuverlässig fokussiert. Hier ist der abgespeckte Code für die Ansichten:
%Vor%Der Abgriffsereignishandler wird zu 100% ausgelöst. Die Konsole zeigt jedesmal korrekt "TAPPED" an. Meistens scheitert der Benutzeragent jedoch im Textbereich. Ich habe die folgende Zeile in die TextareaView eingefügt, um genau zu sehen, welche Ereignisse in welcher Reihenfolge ausgelöst werden:
%Vor%Hier ist die Reihenfolge der Ereignisse, die ich bekomme, wenn das Textfeld richtig fokussiert: touchstart, vmouseover, vmousedown, touchend, vmouseup, vclick, tap, vmouseout, mouse, mousedown, focusin, focus, mouseup, click, focusout, blur
Hier ist die Reihenfolge der Ereignisse, die ich bekomme, wenn das Textfeld nicht fokussiert: touchstart, vmouseover, vmousedown, touchend, vmouseup, vclick, tap, vmouseout, mousemove
Aus irgendeinem Grund können die Ereignisse nach dem Mauszeiger nicht ausgelöst werden. Ich habe versucht, diese Ereignisse auch manuell auszulösen, aber das Textbereich-Element still fokussiert nicht, noch taucht die Tastatur auf, z. B .:
%Vor%Ich habe über Apples Event-Handler-Dokumentation ausgepackt > Vergeblich, und ich kann in keinem der Repos auf Github Fehlerberichte finden.
Zwei andere seltsame Verhaltensweisen, die ich nicht verstehe:
Jede Einsicht wäre willkommen.
Prost,
Fügen Sie das direkt nach dem Fokus ()
hinzu %Vor%Wenn eine Seite gerendert wird, lebt sie im DOM. Wenn Sie ein Element im DOM ändern, kann es sich nach der Änderung aus dem DOM herausbewegen, und Sie können nicht mehr zu ihm zurückkehren. Der obige Code verschiebt es zurück zum DOM.
Finger, die den Fokus des Textbereichs überschreiten, funktionieren, nachdem das geänderte Element wieder eingefügt wurde.
Schauen Sie sich das an, um es besser erklärt zu sehen.
jQuery modal form dialog postback problems
.. und ..
Tags und Links jquery backbone.js ipad jquery-mobile textarea