webentwicklung-frage-antwort-db.com.de

"TypeError: jQuery.easing [this.easing] ist keine Funktion" in jQuery 1.9.1

Zum ersten Mal seit zu vielen Monaten (blush) habe ich mein jQuery-Zeug aufgerüstet. Ich bin jetzt auf:

  • jquery-1.9.1.js
  • jquery-ui-1.10.2.custom.js (verwendet ThemeRoller und beinhaltete alle Komponenten, einschließlich des Effects Core, in dem die Beschleunigung in der Beschreibung erwähnt wird)

Ich habe auch ein Upgrade auf die neuesten Versionen der Plugins jquery.multiselect und jquery.multiselect.filter durchgeführt. Wenn ich versuche, eines der Multiselect-Menüs zu schließen, erhalte ich folgende Fehlermeldung:

TypeError: jQuery.easing[this.easing] is not a function
jquery-1.9.1.js (line 9033)

Beachten Sie, dass der aktuelle Fehler zwar in der Haupt-jQuery-Datei enthalten ist, obwohl ich das Multiselect-Plugin verwende, wenn der Fehler auftritt. Der Code lautet:

/*9031*/ if ( this.options.duration ) {
/*9032*/   this.pos = eased = jQuery.easing[ this.easing ](
/*9033*/     percent, this.options.duration * percent, 0, 1, this.options.duration
/*9034*/   );
/*9035*/ }

Habe ich vergessen, eine Datei zu aktualisieren? Beim Googeln scheinen andere mit derselben Beschwerde versucht zu haben, eine Art zusätzliches Lockerungs-Plugin zu verwenden, aber ich bin es nicht.

8
OsakaWebbie

Dieser Fehler kann in verschiedenen Animationen auf Ihrer Website beim ersten Upgrade auf jQuery 1.9 auftreten. + Weil die Namen der abschwächenden Effekte geändert wurden !!!

Siehe http://api.jqueryui.com/easings/ Was nicht hilft, ist, dass die alten Beispiele auf der jQueryUI.com-Site nicht aktualisiert wurden und die Leute glauben, dass die alten animieren Beispielnamen sind korrekt.

Beispiel: Akkordeonpanels "Bounceslide" -Animation ist jetzt eine nahe Version von "easeOutBounce". Die Zeichenfolge "bounceslide" ist zum Zeitpunkt des Schreibens noch im Beispiel der Sites: http://api.jqueryui.com/accordion/#option-animate

Ich erkannte erst, dass sich die Animationsnamen geändert hatten, nachdem ich dem in den animierten Typen genannten Hyperlink gefolgt war und die neuen Namen in meinem Code ausprobiert hatte.

Umfassen:

<script type="text/javascript" src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>    

Hinweis: Aktualisieren Sie ggf. die Version der Jquery-Benutzeroberfläche.

9

Ungültiges Problem mit dem 2. Argument

Falls dies jemandem hilft, über diese Frage zu stolpern, wie ich es tat, als ich diesen Fehler erhielt, füge ich eine andere mögliche Lösung hinzu. Mein Fehler war auf die Tatsache zurückzuführen, dass mein 2. Argument an die fadeIn-Funktion keine "Callback" -Funktion war, die nach Beendigung der Animation ausgeführt werden sollte. Wenn das 2. Argument keine Funktion ist, erwartet jQuery, dass es sich um eine Art Vereinfachung handelt. Mein 2. Argument war fälschlicherweise ein Objekt - ich dachte, es sei eine Funktion .

Also für mich

return {
  enter: function(element,classes,done){ //classes variable incorrectly added, making done an object
    element.fadeIn(1000,done);
  }
};

wurden:

return {
  enter: function(element,done){ //remove classes variable as wasn't right for this situation - done is now a function
    element.fadeIn(1000,done);
  }
};

Beachten Sie, dass die Änderung der Argumente an meine anonyme enter-Funktion übergeben wurde. Wichtig in meinem Fall waren diese Variablen AngularJS-Injektionen, daher war die Reihenfolge, in der sie sich befanden, wichtig, nicht so sehr ihr Name.

2
dewd

Dank des Kommentars von @ Legionar funktionierte das Upgrade auf seine vorgeschlagene Version 1.13 für mich:

https://github.com/ehynds/jquery-ui-multiselect-widget/archive/1.13.Zip

UPDATEIn dieser Version führt die Verwendung der outerHeight()-Funktion dazu, dass das Widget falsch positioniert wird, da die css-Position top fehlt. Durch Ändern der Zeile # 573 auf Folgendes wird das Problem behoben:

top: pos.top + button.outerHeight(false),
0
AamirR