jQuery 1.9.0 bricht das $ .attrFn-Objekt ab

8

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:

%Vor%

Noch einmal, es gibt zwei jsFiddles als Referenz:

BenM 17.01.2013, 17:43
quelle

2 Antworten

10

Dieses Objekt ( .attrFn ) war nur ein Stich in 1.8; es ist in 1.9 gegangen.

Wenn Ihr Code in 1.8 funktioniert hat, sollten Sie

hinzufügen können %Vor%

irgendwo, um es zu beheben.

    
Pointy 17.01.2013, 17:48
quelle
8

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 ()
  •   
    
epascarello 17.01.2013 17:49
quelle

Tags und Links