Почему jQuery выдает ошибку `fadeOut не является функцией '? - PullRequest
24 голосов
/ 01 июня 2009

Я использую jQuery и помещаю этот код в мой javascript:

function HideMe(itemID) {
    var myDiv = 'item_' + itemID;
    $(myDiv).fadeOut("slow");
}

Но это дает мне эту ошибку: fadeOut не является функцией .

Ответы [ 9 ]

103 голосов
/ 20 октября 2016

Это произойдет, если вы используете «тонкую» версию jQuery. Только «полная» версия jQuery включает анимационные эффекты.

Попробуйте получить "полную" версию jQuery со страницы jQuery и включить ее на свою страницу (или включить полную версию jQuery из CDN со своей страницы) .

15 голосов
/ 01 июня 2009

У вас есть другая библиотека javascript на этой странице? Кажется, у вас есть функция hide и определено $ (например, прототип также имеет функцию hide). Если это так, попробуйте:

jQuery("#item_0").fadeOut("slow");
11 голосов
/ 16 ноября 2016

У меня была эта ошибка, потому что я использовал уменьшенную версию jQuery. Если вы загрузите полную версию, все будет в порядке.

4 голосов
/ 01 июня 2009

Даже если селектор не вернул ни одного элемента в коллекции, вызов функции сработал бы ( не генерирует эту ошибку в любом случае ), если jQuery был загружен правильно. Либо есть конфликт на странице, или он вообще не загружался. Вы можете попробовать

jQuery(myDiv).fadeOut("slow");

или посмотрите, почему jQuery не был загружен.

P.S .: не забывайте # в селекторе при выборе по id.

3 голосов
/ 01 июня 2009

Кроме того, вы, вероятно, забыли # в селекторе (если только у вас нет что-то вроде <item_1 /> в разметке).

var myDiv = '#item_' + itemID;

jQuery использует селекторы CSS для поиска элементов, поэтому без # вы получите каждый элемент с тегом item_x вместо идентификатора.

2 голосов
/ 01 июня 2009

Похоже, jquery неправильно прикреплен к странице.

Проверьте вашу ссылку на jQuery.

1 голос
/ 01 июня 2009

Попробуй хранить внутри

$(document).ready(function(){
// your code. and don't forget the '#' in front of item.
});

Похоже, вы пытаетесь вызвать функцию до загрузки jQuery / DOM.

1 голос
/ 01 июня 2009

У вас есть liDiv вместо myDiv. Попробуйте:

function HideMe(itemID) {
    var myDiv = 'item_' + itemID;
    $(myDiv).fadeOut("slow");
}
0 голосов
/ 15 мая 2019

При перемещении шаблона .html в шаблон WordPress я обнаружил, что это регулярно появляется.

Две причины, и ошибка консоли может быть обманчива:

  1. Ошибка в консоли может отправить вас по неверному пути . Это не может быть реальной проблемой. Первой причиной для меня был порядок , в котором вы установили свои файлы .js для загрузки. В html легко разместите их в том же порядке, что и шаблон темы. В Wordpress вам нужно ставить их в правильном порядке, а также устанавливать приоритет, если они не отображаются в правильном порядке,

  2. Второе - это файлы .js в заголовке или нижний колонтитул . Перемещение их в нижний колонтитул может решить проблему - для меня это произошло после целого дня попыток отладить проблему. Обычно это не имеет значения, но для сложной страницы с большим количеством библиотек js это может быть!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...