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.
Коста
18

Для тех, у кого есть пользовательская сборка пользовательского интерфейса jQuery (например, 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 easing переименовал их имена функций эффектов с версии 1.2 на. Если у вас есть некоторый javascript, зависящий от ослабления, и он не вызывает правильное имя эффекта, он выдаст эту ошибку.

эрикоптер
источник
5

Я получил эту ошибку сегодня, пытаясь запустить эффект слайда на div. Благодаря приведенному выше ответу «Я ненавижу ленивого» (за который я проголосовал) я стал искать собственный сценарий пользовательского интерфейса jQuery, и вы фактически можете создать свой собственный файл прямо на веб-сайте jQuery ui http: // jqueryui. com / download / . Все, что вам нужно сделать, это отметить эффект (ы), который вы ищете, а затем загрузить.

Я искал эффект слайда. Поэтому сначала я снял все флажки, затем щелкнул флажок «эффект слайда», и страница автоматически проверила другие компоненты, необходимые для работы эффекта слайда. Очень просто.

easyOutBounce - это эффект замедления, для которого вам нужно установить флажок «Ядро эффектов».

luke_mclachlan
источник
4

Если вы используете Bootstrap, также возможно, что jQuery Bootstrap, если он включен под тегом сценария jQuery, перезаписывает тег сценария jQuery другой версией. Включение собственного CDN jQuery и удаление тега сценария jQuery, предоставляемого Bootstrap, было единственным, что у меня сработало.

Мэтью Хинея
источник
1

Для тех, кто сталкивается с этой ошибкой, и вы пробовали обновлять версии и проверять наличие ядра эффектов и т. Д., Но все еще ломаете голову. Ознакомьтесь с документацией для animate () и другого синтаксиса.

Все, что я сделал, это написал «Линейный» вместо «линейный» и получил [this.easing] не является функцией

$ ("# main"). animate ({scrollLeft: '187px'}, 'медленно', 'Линейный'); //плохой

$ ("# main"). animate ({scrollLeft: '187px'}, 'медленно', 'линейный'); //хорошо

дерево
источник
0

Я обнаружил проблему: не используйте CDN (это вызывает проблему!), Вместо этого сохраните файл jquery локально на своем сервере, и тогда проблема исчезнет.

Пасодобль
источник
0

jquery.easingУ меня сработал импорт cdn.

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

Вы можете добавить это внизу веб-страницы.

FaridLU
источник
0

используйте последнюю версию для начальной загрузки 4 и выше, это не повлияет на ваш интерфейс

Салман Ифрахим
источник