TypeError: p.easing [this.easing] không phải là một hàm


96

Khi cố gắng hiển thị một phần tử div bằng jQuery, tôi gặp lỗi này:

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

Chức năng liên quan là:

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

Hàm có nhiệm vụ hiển thị div với hoạt ảnh bị trả lại, tuy nhiên, div được hiển thị nhưng không có hiệu ứng bị trả lại.

BIÊN TẬP:

Tôi đang bao gồm các thư viện jQuery và jQueryUI từ một CDN như thế này (Theo thứ tự):

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

Câu trả lời:


142

Bạn cần bao gồm jQueryUI cho các tùy chọn nới lỏng mở rộng.

Tôi nghĩ rằng có thể có một tùy chọn để chỉ bao gồm nới lỏng trong tải xuống hoặc ít nhất chỉ là thư viện cơ sở cộng với nới lỏng.


10
Tôi đang bao gồm tệp này từ CDN: <script src='http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/jquery-ui.min.js'></script> Có phải tệp này không? Hay tôi sẽ bao gồm một tệp khác?
Malloc

1
Có, tôi đã làm, nhưng luôn gặp vấn đề tương tự, vui lòng xem bản chỉnh sửa của tôi :)
Malloc

2
Ồ, tôi đã sửa nó, tôi đã bao gồm cả jQuery-min và jQuery trên cùng một tệp, đó là sai lầm của tôi. Thanx cho sự giúp đỡ của bạn :)))
Malloc

3
Ý anh là gì? Làm thế nào bạn sửa chữa nó?
max4ever

1
Vâng, tôi vẫn gặp lỗi tương tự, nhưng tôi chỉ đưa vào một tệp nguồn jquery.
Costa

17

Đối với những người có bản dựng giao diện người dùng jQuery tùy chỉnh (bower cho ví dụ:), hãy thêm lõi hiệu ứng nằm trong đó ..\jquery-ui\ui\effect.js.


1
Tôi chỉ phải sử dụng một hiệu ứng duy nhất, vì vậy tôi có thể tạo ra hiệu ứng chỉ với import "jquery-ui/ui/effects/effect-slide". Cảm ơn vì mẹo, Tim!
aried3r

13

Bao gồm cả điều này đã làm việc cho tôi.

Vui lòng bao gồm dòng được đề cập bên dưới trong phần.

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


10

Plugin nới lỏng jquery đã đổi tên các tên hàm hiệu ứng của chúng từ phiên bản 1.2 trở đi. Nếu bạn có một số javascript phụ thuộc vào việc nới lỏng và nó không gọi đúng tên hiệu ứng, nó sẽ gây ra lỗi này.


5

Hôm nay tôi gặp lỗi này khi đang cố tạo hiệu ứng trượt trên div. Nhờ câu trả lời từ 'I Hate Lazy' ở trên (mà tôi đã ủng hộ), tôi đã tìm kiếm tập lệnh giao diện người dùng jQuery tùy chỉnh và trên thực tế, bạn có thể tạo tệp của riêng mình trực tiếp trên trang web jQuery ui http: // jqueryui. com / download / . Tất cả những gì bạn phải làm là đánh dấu (các) hiệu ứng mà bạn đang tìm kiếm và sau đó tải xuống.

Tôi đang tìm kiếm hiệu ứng trượt. Vì vậy, trước tiên tôi bỏ chọn tất cả các hộp kiểm, sau đó nhấp vào hộp kiểm 'hiệu ứng trang chiếu' và trang sẽ tự động sau đó kiểm tra các thành phần khác cần thiết để làm cho hiệu ứng trang chiếu hoạt động. Rất đơn giản.

easyOutBounce là một hiệu ứng nới lỏng, bạn sẽ cần đánh dấu vào hộp kiểm 'Effects Core'.


4

Nếu bạn đang sử dụng Bootstrap, cũng có thể jQuery của Bootstrap, nếu được bao gồm bên dưới thẻ tập lệnh jQuery của bạn, đang ghi đè thẻ tập lệnh jQuery của bạn bằng một phiên bản khác. Bao gồm CDN của riêng jQuery và xóa thẻ tập lệnh jQuery mà Bootstrap cung cấp là điều duy nhất phù hợp với tôi.


1

Đối với bất kỳ ai gặp phải lỗi này và bạn đã thử cập nhật các phiên bản và đảm bảo lõi hiệu ứng có mặt, v.v. và vẫn đang gãi đầu. Kiểm tra tài liệu về animate () và cú pháp khác.

Tất cả những gì tôi đã làm là viết "Linear" thay vì "linear" và nhận được [this.easing] không phải là một hàm

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

$ ("# main"). animate ({scrollLeft: '187px'}, 'chậm', 'tuyến tính'); // tốt


0

Tôi đã tìm thấy sự cố: Không sử dụng CDN (điều này gây ra sự cố!), Thay vào đó hãy lưu tệp jquery cục bộ trên máy chủ của bạn và sau đó sự cố sẽ biến mất.


0

Nhập jquery.easingcdn làm việc cho tôi.

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

Bạn có thể thêm phần này vào cuối trang web.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.