TypeError: p.easing [this.easing] nie jest funkcją

96

Podczas próby wyświetlenia elementu div za pomocą jQuery otrzymałem ten błąd:

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

Odpowiednia funkcja jest następująca:

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();
}

Ta funkcja jest odpowiedzialna za wyświetlanie elementu div z animacją odbijania, jednak element div jest wyświetlany, ale bez efektu odbijania.

EDYTOWAĆ:

Dołączam biblioteki jQuery i jQueryUI z takiej sieci CDN (w kolejności):

<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
źródło

Odpowiedzi:

142

Aby rozszerzyć opcje wygładzania, musisz dołączyć jQueryUI.

Wydaje mi się, że może istnieć opcja dołączenia do pobierania tylko wygładzania lub przynajmniej tylko biblioteki podstawowej i łagodzenia.

Nienawidzę lenistwa
źródło
10
Załączam ten plik z CDN: <script src='http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/jquery-ui.min.js'></script> Czy to ten? Czy powinienem dołączyć inny plik?
Malloc
1
Tak, ale zawsze mam ten sam problem, proszę spojrzeć na moją edycję :)
Malloc
2
Och, naprawiłem to, włączyłem zarówno jQuery-min, jak i jQuery do tego samego pliku, to był mój błąd. Dzięki za pomoc :)))
Malloc
3
co masz na myśli? jak to naprawiłeś?
max4ever
1
Tak, nadal otrzymuję ten sam błąd, ale dołączyłem tylko jeden plik źródłowy jquery.
Costa
18

Dla tych, którzy mają niestandardową kompilację interfejsu użytkownika jQuery (np. Altana), dodaj rdzeń efektów znajdujący się w ..\jquery-ui\ui\effect.js.

Tim Vermaelen
źródło
1
Musiałem użyć tylko jednego efektu, więc mogłem zrobić to samo import "jquery-ui/ui/effects/effect-slide". Dzięki za wskazówkę, Tim!
aried3r
13

W tym to zadziałało dla mnie.

Prosimy o umieszczenie w sekcji linii wymienionej poniżej.

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

Manju
źródło
10

Wtyczka Jquery do wygładzania zmieniła nazwy ich funkcji efektów z wersji 1.2. Jeśli masz jakiś javascript w zależności od wygładzania i nie wywołuje on właściwej nazwy efektu, zgłosi ten błąd.

erikopter
źródło
5

Ten błąd wystąpił dzisiaj podczas próby zainicjowania efektu slajdu w elemencie div. Dzięki odpowiedzi z powyższej odpowiedzi „I Hate Lazy” (za którą głosowałem), szukałem niestandardowego skryptu interfejsu użytkownika jQuery i faktycznie możesz zbudować własny plik bezpośrednio na stronie jQuery ui http: // jqueryui. pl / download / . Wszystko, co musisz zrobić, to zaznaczyć efekt (y), którego szukasz, a następnie pobrać.

Szukałem efektu ślizgu. Dlatego najpierw odznaczyłem wszystkie pola wyboru, a następnie kliknąłem pole wyboru „efekt slajdu”, a strona automatycznie sprawdza pozostałe składniki niezbędne do działania efektu slajdu. Bardzo prosty.

EasyOutBounce to efekt łagodzący, dla którego należy zaznaczyć pole wyboru „Rdzeń efektów”.

luke_mclachlan
źródło
4

Jeśli używasz Bootstrap, możliwe jest również, że jQuery Bootstrapa, jeśli znajduje się poniżej tagu skryptu jQuery, nadpisuje tag skryptu jQuery inną wersją. Włączenie własnego CDN jQuery i usunięcie tagu skryptu jQuery, który zapewnia Bootstrap, było jedyną rzeczą, która działała dla mnie.

Matthew Hinea
źródło
1

Dla każdego, kto przechodzi ten błąd i próbowałeś zaktualizować wersje i upewnić się, że rdzeń efektów jest obecny itp. I nadal drapać się po głowie. Sprawdź dokumentację dotyczącą animate () i innej składni.

Wszystko, co zrobiłem, to napisanie „Linear” zamiast „linear” i otrzymałem [this.easing] nie jest funkcją

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

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

drzewo
źródło
0

Znalazłem problem: nie używaj CDN (to jest przyczyną problemu!), Zamiast tego zapisz plik jquery lokalnie na swoim serwerze, a wtedy problem zniknie.

Pasodoble
źródło
0

Importowanie jquery.easingcdn zadziałało dla mnie.

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

Możesz dodać ten dół strony internetowej.

FaridLU
źródło
0

użyj najnowszego dla bootstrap 4 i nowszych, nie wpłynie to na twój interfejs użytkownika

salman ifrahim
źródło