TypeError: p.easing [this.easing] ist keine Funktion

95

Beim Versuch, ein div-Element mit jQuery anzuzeigen, wurde folgende Fehlermeldung angezeigt:

[23:50:35.971] TypeError: p.easing[this.easing] is not a function @ file:///D:/html5%20puzzle/jquery.js:2

Die relevante Funktion ist folgende:

function showWithAnimation(){                  
  console.log('animation called');
  $('#popup').show();
  $("#popup").css({"top": "30%", "left": "30%"})
             .animate({top:(($(window).height()/2)-($('#popup')
             .outerHeight()/2))-70}, 1000, 'easeOutBounce')
             .show();
}

Die Funktion ist dafür verantwortlich, das Div mit einer Bounce-Animation anzuzeigen. Das Div wird jedoch angezeigt, jedoch ohne Bounce-Effekt.

BEARBEITEN:

Ich füge jQuery- und jQueryUI-Bibliotheken von einem CDN wie diesem hinzu (in der Reihenfolge):

<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js'></script>
<script src='http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/jquery-ui.min.js'>
</script>
Malloc
quelle

Antworten:

141

Sie müssen jQueryUI für die erweiterten Lockerungsoptionen einschließen.

Ich denke, es gibt möglicherweise eine Option, nur die Lockerung in den Download aufzunehmen, oder zumindest nur die Basisbibliothek plus Lockerung.

Ich hasse Faulheit
quelle
10
Ich füge diese Datei von einem CDN hinzu: <script src='http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/jquery-ui.min.js'></script> Ist es diese? Oder soll ich eine andere Datei hinzufügen?
Malloc
1
Ja, das habe ich, aber ich habe immer das gleiche Problem, bitte schauen Sie sich meine Bearbeitung an :)
Malloc
2
Oh, ich habe es behoben, ich habe sowohl jQuery-min als auch jQuery in dieselbe Datei aufgenommen, das war mein Fehler. Vielen Dank für Ihre Hilfe :)))
Malloc
3
Was meinst du? Wie hast du das behoben?
Max4ever
1
Ja, ich erhalte immer noch den gleichen Fehler, aber ich habe nur eine JQuery-Quelldatei eingefügt.
Costa
17

Fügen Sie für diejenigen, die über eine benutzerdefinierte jQuery-Benutzeroberfläche verfügen (z. B. Bower), den Effektkern hinzu, der sich in befindet ..\jquery-ui\ui\effect.js.

Tim Vermaelen
quelle
1
Ich musste nur einen einzigen Effekt verwenden, also konnte ich mit nur fällig machen import "jquery-ui/ui/effects/effect-slide". Danke für den Tipp, Tim!
Aried3r
13

Einschließlich dies hat bei mir funktioniert.

Bitte fügen Sie die unten angegebene Zeile in den Abschnitt ein.

<script src='http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/jquery-ui.min.js'>

Manju
quelle
10

Das Jquery Easing Plugin hat die Namen der Effektfunktionen ab Version 1.2 umbenannt. Wenn Sie je nach Beschleunigung über Javascript verfügen und nicht den richtigen Effektnamen aufrufen, wird dieser Fehler ausgegeben.

ericopter
quelle
5

Ich habe diesen Fehler heute erhalten, als ich versucht habe, einen Folieneffekt auf einem Div auszulösen. Dank der Antwort von 'I Hate Lazy' oben (die ich positiv bewertet habe) habe ich nach einem benutzerdefinierten jQuery-UI-Skript gesucht, und Sie können Ihre eigene Datei direkt auf der jQuery-UI-Website http: // jqueryui erstellen. com / download / . Sie müssen lediglich die gesuchten Effekte markieren und dann herunterladen.

Ich habe nach dem Diaeffekt gesucht. Also habe ich zuerst alle Kontrollkästchen deaktiviert, dann das Kontrollkästchen "Folieneffekt" aktiviert und die Seite überprüft dann automatisch die anderen Komponenten, die erforderlich sind, damit der Folieneffekt funktioniert. Sehr einfach.

easOutBounce ist ein Lockerungseffekt, für den Sie das Kontrollkästchen "Effects Core" aktivieren müssen.

luke_mclachlan
quelle
4

Wenn Sie Bootstrap verwenden, ist es auch möglich, dass Bootstraps jQuery, wenn es unter Ihrem jQuery-Skript-Tag enthalten ist, Ihr jQuery-Skript-Tag mit einer anderen Version überschreibt. Das Einschließen von jQuerys eigenem CDN und das Löschen des von Bootstrap bereitgestellten jQuery-Skript-Tags war das einzige, was für mich funktioniert hat.

Matthew Hinea
quelle
1

Für alle, die diesen Fehler durchlaufen haben und versucht haben, Versionen zu aktualisieren und sicherzustellen, dass der Effektkern vorhanden ist usw. und sich immer noch am Kopf kratzen. Überprüfen Sie die Dokumentation auf animate () und andere Syntax.

Alles was ich getan habe war "Linear" anstelle von "linear" zu schreiben und bekam das [this.easing] ist keine Funktion

$ ("# main"). animate ({scrollLeft: '187px'}, 'slow', 'Linear'); //Schlecht

$ ("# main"). animate ({scrollLeft: '187px'}, 'langsam', 'linear'); //gut

Baum
quelle
0

Ich habe das Problem gefunden: Verwenden Sie kein CDN (dies verursacht das Problem!), Sondern speichern Sie die jquery-Datei lokal auf Ihrem Server, und dann ist das Problem behoben.

Pasodoble
quelle
0

Das Importieren von jquery.easingCDN hat bei mir funktioniert.

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.4.1/jquery.easing.min.js"></script>

Sie können diesen unteren Rand der Webseite hinzufügen.

FaridLU
quelle