Inkonsistente Ereignisse, die in Safari unter iOS auf Textarea ausgelöst wurden

8

Ich habe bei Safari für iPad einen ärgerlichen Fehler festgestellt, den ich nicht beheben kann.

Architektur:

  • Rückgrat 0.9.9
  • jquery 1.7.2
  • jquery mobile 1.3.1

Benutzeragent:

  • iOS 5.1.1 (iPad)
  • Safari 5.1 mobil
  • vollständige User-Agent-Zeichenfolge: Mozilla / 5.0 (iPad; CUP OS 5_1_1 wie Mac OS X) AppleWebKit / 534.46 (KHTML, wie Gecko) Version / 5.1 Mobile / 9B206 Safari / 7534.48.3

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:

  1. die erste Instanz der Textarea funktioniert immer korrekt
  2. Das Textfeld konzentriert sich trotz eines blur Ereignisses, das
  3. genannt wird

Jede Einsicht wäre willkommen.

Prost,

    
biegel 26.07.2013, 19:25
quelle

1 Antwort

0

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 ..

$ ("# dialog"). parent (). appendTo ($ ("form: first")) ;

    
FlemGrem 12.09.2013 13:26
quelle