Я использую jQuery и помещаю этот код в мой JavaScript:
function HideMe(itemID) {
var myDiv = 'item_' + itemID;
$(myDiv).fadeOut("slow");
}
Но это дает мне эту ошибку: fadeOut
не является функцией.
Я использую jQuery и помещаю этот код в мой JavaScript:
function HideMe(itemID) {
var myDiv = 'item_' + itemID;
$(myDiv).fadeOut("slow");
}
Но это дает мне эту ошибку: fadeOut
не является функцией.
У вас есть другая библиотека javascript на этой странице? Кажется, у вас есть функция hide
, а $
определен (прототип, например, также имеет функцию hide
).
Если это так, попробуйте:
jQuery("#item_0").fadeOut("slow");
Это произойдет, если вы используете "тонкую" версию jQuery. Только "полная" версия jQuery включает эффекты анимации.
Попробуйте захватить "полную" версию jQuery с страницы загрузки jQuery и в том числе на вашей странице (или включая полную версию jQuery из CDN с вашей страницы).
У меня была эта ошибка, потому что я использовал тонкую версию jQuery. Если вы загрузите полную версию, вы должны быть в порядке.
Даже если селектор не возвратил какие-либо элементы в коллекции, вызов функции сработал бы (не генерировал бы эту ошибку в любом случае), если jQuery был загружен правильно. Либо есть конфликт на странице, или он вообще не загружается. Вы можете попробовать
jQuery(myDiv).fadeOut("slow");
или посмотрите, почему jQuery не был загружен.
P.S.: не забывайте #
в селекторе при выборе по id.
Кроме того, вы, вероятно, забыли #
в селекторе (если в разметке нет что-то вроде <item_1 />
).
var myDiv = '#item_' + itemID;
jQuery использует селекторы CSS для поиска элементов, поэтому без #
вы получите каждый элемент с тегом item_x
вместо идентификатора.
Похоже, что jquery неправильно привязан к странице.
Проверьте вашу ссылку на jQuery.
У вас liDiv
вместо myDiv
. Попробуйте:
function HideMe(itemID) {
var myDiv = 'item_' + itemID;
$(myDiv).fadeOut("slow");
}
Попробуйте сохранить его внутри
$(document).ready(function(){
// your code. and don't forget the '#' in front of item.
});
Похоже, вы пытаетесь вызвать функцию до загрузки jQuery/DOM.
При перемещении .html-шаблона в WordPress, я обнаружил, что это регулярно появляется.
Две причины, и ошибка консоли может быть обманчива:
Ошибка в консоли может отправить вас по неверному пути. Это не может быть реальной проблемой. Первой причиной для меня был порядок, в котором вы установили файлы .js для загрузки. В html легко разместите их в том же порядке, что и шаблон темы. В Wordpress вам нужно ставить их в правильном порядке, а также устанавливать приоритет, если они не отображаются в правильном порядке,
Второе - это файлы .js в верхнем или нижнем колонтитуле. Перемещение их в нижний колонтитул может решить проблему - для меня это произошло после целого дня попыток отладить проблему. Обычно это не имеет значения, но для сложной страницы с большим количеством js-библиотек это возможно!