Ich habe eine Bibliothek nützlicher 'mobiler' Veranstaltungen geschrieben ( hier verfügbar ). Es vereinheitlicht Berührungsereignisse im Wesentlichen, so dass ein einzelnes Ereignis an ein Element gebunden werden kann und unabhängig vom Gerät des Benutzers (d. H. Mobil oder Desktop) ausgelöst wird.
Der Code hat gut funktioniert, aber beim Debuggen eines Benutzerproblems habe ich festgestellt, dass die Bibliothek nicht mehr funktioniert, wenn jQuery 1.9.0 verwendet wird (alle früheren Versionen von jQuery verursachen kein Problem).
Der problematische Code lautet wie folgt:
%Vor% Der Fehler Uncaught TypeError: Cannot set property 'tapstart' of undefined
in der folgenden Zeile:
$.attrFn[name] = true;
Kann mir jemand in die Richtung zeigen, eine Lösung dafür zu finden?
Ich habe 2 jsFiddle Demos zusammengestellt, um das Problem zu zeigen:
Wenn ich $.attrFn
definiere, behebt dies den Code für die swipe*
-Ereignisse, verursacht dann aber Probleme mit anderen wie tap
und doubletap
. Zum Beispiel erzeugt das Binden von tap
jetzt den Fehler: Uncaught TypeError: Cannot call method 'call' of undefined
, wobei die problematische Zeile lautet:
Noch einmal, es gibt zwei jsFiddles als Referenz:
$.attrFn = $.attrFn || {};
fix) Aus den jQuery 1.9-Versionshinweisen
Weitere undokumentierte Eigenschaften und Methoden
Die folgenden internen Eigenschaften und Methoden wurden nie dokumentiert und wurden in 1.9 entfernt. Jeder Code, der von ihnen abhängt sollte neu geschrieben werden.
- jQuery.deletedIds
- jQuery.uuid
- jQuery.attrFn
- jQuery.clean ()
- jQuery.event.handle ()
- jQuery.offset.bodyOffset ()
Tags und Links javascript jquery