TypeError: p.easing [this.easing] ไม่ใช่ฟังก์ชัน


96

เมื่อพยายามแสดงองค์ประกอบ div ด้วย jQuery ฉันได้รับข้อผิดพลาดนี้:

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

ฟังก์ชั่นที่เกี่ยวข้องคือ:

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

ฟังก์ชั่นนี้มีหน้าที่ในการแสดง div พร้อมกับภาพเคลื่อนไหวการตีกลับอย่างไรก็ตาม div จะแสดง แต่ไม่มีเอฟเฟกต์ตีกลับ

แก้ไข:

ฉันรวมไลบรารี jQuery และ jQueryUI จาก CDN เช่นนี้ (ตามลำดับ):

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

คำตอบ:


142

คุณต้องรวม jQueryUI สำหรับตัวเลือกการค่อยๆเปลี่ยนเพิ่มเติม

ฉันคิดว่าอาจมีตัวเลือกให้รวมเฉพาะการค่อยๆเปลี่ยนในการดาวน์โหลดหรืออย่างน้อยก็แค่ไลบรารีพื้นฐานบวกการค่อยๆเปลี่ยน


10
ฉันรวมไฟล์นี้จาก CDN: <script src='http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/jquery-ui.min.js'></script> ใช่หรือไม่ หรือฉันจะรวมไฟล์อื่น?
Malloc

1
ใช่ฉันทำ แต่มีปัญหาเดียวกันเสมอโปรดดูการแก้ไขของฉัน :)
Malloc

2
โอ้ฉันแก้ไขแล้วฉันรวมทั้ง jQuery-min และ jQuery ไว้ในไฟล์เดียวกันนั่นเป็นความผิดพลาดของฉัน ขอบคุณสำหรับความช่วยเหลือของคุณ :)))
Malloc

3
คุณหมายถึงอะไร? คุณแก้ไขอย่างไร
max4ever

1
ใช่ฉันยังคงได้รับข้อผิดพลาดเดิม แต่ฉันรวมไฟล์ต้นฉบับ jquery ไว้เพียงไฟล์เดียว
Costa

18

สำหรับผู้ที่มีการสร้าง jQuery UI ที่กำหนดเอง (bower สำหรับเช่น) ให้เพิ่มแกนเอฟเฟกต์ที่อยู่ใน..\jquery-ui\ui\effect.js.


1
import "jquery-ui/ui/effects/effect-slide"ฉันมีเพียงที่จะใช้ผลเดียวดังนั้นฉันก็สามารถที่จะทำให้เนื่องจากมีเพียง ขอบคุณสำหรับคำแนะนำทิม!
aried3r

13

รวมถึงสิ่งนี้ได้ผลสำหรับฉัน

โปรดรวมบรรทัดที่กล่าวถึงด้านล่างในส่วน

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


10

ปลั๊กอินการค่อยๆเปลี่ยน Jquery เปลี่ยนชื่อฟังก์ชันเอฟเฟกต์จากเวอร์ชัน 1.2 บน หากคุณมีจาวาสคริปต์ขึ้นอยู่กับการค่อยๆเปลี่ยนและไม่ได้เรียกชื่อเอฟเฟกต์ที่ถูกต้องจะทำให้เกิดข้อผิดพลาดนี้


5

วันนี้ฉันได้รับข้อผิดพลาดนี้ขณะพยายามเริ่มเอฟเฟกต์สไลด์บน div ขอบคุณคำตอบจาก 'I Hate Lazy' ด้านบน (ซึ่งฉันได้รับการโหวตแล้ว) ฉันมองหาสคริปต์ jQuery UI ที่กำหนดเองและในความเป็นจริงคุณสามารถสร้างไฟล์ของคุณเองได้โดยตรงบนเว็บไซต์ jQuery ui http: // jqueryui com / ดาวน์โหลด / . สิ่งที่คุณต้องทำคือทำเครื่องหมายเอฟเฟกต์ที่คุณกำลังมองหาจากนั้นดาวน์โหลด

ฉันกำลังมองหาเอฟเฟกต์สไลด์ ดังนั้นฉันจึงยกเลิกการเลือกช่องทำเครื่องหมายทั้งหมดก่อนจากนั้นคลิกที่ช่องทำเครื่องหมาย "เอฟเฟกต์สไลด์" จากนั้นหน้าจะตรวจสอบส่วนประกอบอื่น ๆ ที่จำเป็นเพื่อให้เอฟเฟกต์สไลด์ทำงานโดยอัตโนมัติ ง่ายมาก.

EaseOutBounce เป็นเอฟเฟกต์การค่อยๆเปลี่ยนซึ่งคุณจะต้องทำเครื่องหมายในช่อง 'Effects Core'


4

หากคุณใช้ Bootstrap อาจเป็นไปได้ว่า jQuery ของ Bootstrap หากรวมอยู่ด้านล่างแท็กสคริปต์ jQuery ของคุณกำลังเขียนทับแท็กสคริปต์ jQuery ของคุณด้วยเวอร์ชันอื่น การรวม CDN ของ jQuery เองและการลบแท็กสคริปต์ jQuery ที่ Bootstrap ให้เป็นสิ่งเดียวที่ใช้ได้ผลสำหรับฉัน


1

สำหรับใครก็ตามที่พบข้อผิดพลาดนี้และคุณได้ลองอัปเดตเวอร์ชันและตรวจสอบให้แน่ใจว่ามีแกนเอฟเฟกต์อยู่และยังเกาหัวอยู่ ตรวจสอบเอกสารสำหรับ animate () และไวยากรณ์อื่น ๆ

สิ่งที่ฉันทำคือเขียน "Linear" แทนที่จะเป็น "linear" และได้รับ [this.easing] ไม่ใช่ฟังก์ชัน

$ ("# main") เคลื่อนไหว ({scrollLeft: '187px'}, 'slow', 'Linear'); // แย่

$ ("# main") เคลื่อนไหว ({scrollLeft: '187px'}, 'slow', 'linear'); //ดี


0

ฉันพบปัญหา: อย่าใช้ CDN (นี่คือสาเหตุของปัญหา!) ให้บันทึกไฟล์ jquery ไว้ในเซิร์ฟเวอร์ของคุณแทนแล้วปัญหาก็จะหายไป


0

การนำเข้าjquery.easingcdn ใช้ได้ผลสำหรับฉัน

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

คุณสามารถเพิ่มด้านล่างของหน้าเว็บนี้ได้


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.