TypeError: p.easing [this.easing] bukan sebuah fungsi

96

Saat mencoba menampilkan elemen div dengan jQuery, saya mendapat kesalahan ini:

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

Fungsi yang relevan adalah ini:

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

Fungsi ini bertanggung jawab untuk menampilkan div dengan animasi pantulan, namun div ditampilkan tetapi tanpa efek pantulan.

EDIT:

Saya termasuk pustaka jQuery dan jQueryUI dari CDN seperti ini (Dalam urutan):

<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
sumber

Jawaban:

142

Anda perlu menyertakan jQueryUI untuk opsi easing yang diperpanjang.

Saya pikir mungkin ada opsi untuk hanya menyertakan easing dalam unduhan, atau setidaknya hanya pustaka dasar plus easing.

Saya Benci Malas
sumber
10
Saya menyertakan file ini dari CDN: <script src='http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/jquery-ui.min.js'></script> Apakah yang ini? Atau haruskah saya menyertakan file lain?
Malloc
1
Ya saya melakukannya, tetapi selalu mendapat masalah yang sama, silakan lihat hasil edit saya :)
Malloc
2
Oh saya memperbaikinya, saya memasukkan jQuery-min dan jQuery pada file yang sama, itu adalah kesalahan saya. Terima kasih atas bantuan Anda :)))
Malloc
3
maksud kamu apa? bagaimana kamu memperbaikinya?
max4ever
1
Ya, saya masih mendapatkan kesalahan yang sama, tetapi saya hanya menyertakan satu file sumber jquery.
Costa
18

Bagi mereka yang memiliki build jQuery UI kustom (misalnya, bower), tambahkan inti efek yang terletak di ..\jquery-ui\ui\effect.js.

Tim Vermaelen
sumber
1
Saya hanya harus menggunakan satu efek, jadi saya bisa melakukannya dengan adil import "jquery-ui/ui/effects/effect-slide". Terima kasih atas tipnya, Tim!
aried3r
13

Termasuk ini berhasil untuk saya.

Harap sertakan baris yang disebutkan di bawah ini di bagian.

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

Manju
sumber
10

Plugin easing Jquery mengganti nama fungsi efeknya dari versi 1.2 ke atas. Jika Anda memiliki beberapa javascript tergantung pada easing dan tidak memanggil nama efek yang tepat, itu akan menimbulkan kesalahan ini.

helikopter
sumber
5

Saya mendapat kesalahan ini hari ini saat mencoba memulai efek slide pada div. Berkat jawaban dari 'I Hate Lazy' di atas (yang telah saya upvoting), saya mencari skrip jQuery UI khusus, dan Anda sebenarnya dapat membuat file Anda sendiri langsung di situs web jQuery ui http: // jqueryui. com / unduh / . Yang harus Anda lakukan adalah menandai efek yang Anda cari dan kemudian unduh.

Saya mencari efek slide. Jadi saya pertama-tama menghapus centang semua kotak centang, lalu mengklik kotak centang 'efek slide' dan halaman secara otomatis kemudian memeriksa komponen lain yang diperlukan untuk membuat efek slide berfungsi. Sangat sederhana.

easyOutBounce adalah efek easing, di mana Anda harus mencentang kotak 'Effects Core'.

luke_mclachlan
sumber
4

Jika Anda menggunakan Bootstrap, mungkin juga jQuery Bootstrap, jika disertakan di bawah tag skrip jQuery Anda, menimpa tag skrip jQuery Anda dengan versi lain. Menyertakan CDN jQuery sendiri dan menghapus tag skrip jQuery yang disediakan Bootstrap adalah satu-satunya hal yang berhasil untuk saya.

Matthew Hinea
sumber
1

Bagi siapa pun yang mengalami kesalahan ini dan Anda telah mencoba memperbarui versi dan memastikan inti efek ada dll dan masih menggaruk-garuk kepala Anda. Periksa dokumentasi untuk animate () dan sintaks lainnya.

Yang saya lakukan hanyalah menulis "Linear" bukan "linier" dan mendapatkan [this.easing] bukan fungsi

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

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

pohon
sumber
0

Saya telah menemukan masalah: Jangan gunakan CDN (ini menyebabkan masalah!), Sebaliknya simpan file jquery secara lokal di server Anda dan kemudian masalahnya hilang.

Pasodoble
sumber
0

Mengimpor jquery.easingcdn berhasil untuk saya.

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

Anda dapat menambahkan bagian bawah halaman web ini.

FaridLU
sumber
0

gunakan yang terbaru untuk bootstrap 4 dan yang lebih baru, ini tidak akan memengaruhi UI Anda

salman ifrahim
sumber