2014-07-04 1 views
3

Я новичок в JS, и я пишу основную веб-страницу, богатую jQuery, с fade-in/fade-out для каждой страницы в том же документе (с использованием того же элемента div с отдельными идентификаторами). В любом случае, когда я пытаюсь исчезнуть на текущей странице, я получаю сообщение об ошибке «Uncaught TypeError: undefined не является функцией», у меня был поиск в Интернете, но не удалось найти решение.jQuery «Uncaught TypeError: undefined не является функцией» при использовании fadeIn();

HTML загружен перед скриптом, и полная библиотека jQuery включена в заголовок страницы.

Элемент div, на который я нацеливаюсь, имеет «display: none;» установленный в моем CSS.

HTML

<div class="page_content" id="page_home"> 
Content removed 
</div> 

JS:

<script> 

var cp = "page_home"; 
var tp = document.getElementById(cp); 
tp.fadeIn('slow'); 

</script> 

Любой опытный ничего подобного, и есть решение? Я уверен, что это что-то просто, так как мой код все равно ...

ответ

2

tp является простой JavaScript Object, и он не имеет функцию под названием .fadeIn()

Try, чтобы обернуть его в $(), чтобы сделать это JQuery объект затем сделать,

$(tp).fadeIn('slow'); 

или лучше использовать JQuery-х id selector, чтобы захватить элемент,

$("#page_home").fadeIn('slow'); 
+0

теперь работает! Спасибо, теперь кажется очевидным, что я смотрю на это, я знал, что использовать это при выборе идентификатора или класса в любом случае, я не думал, что это необходимо, поскольку эта переменная уже была установлена ​​на целевой идентификационный элемент. – SigmaDanny

+0

@ user3805361 Рад помочь ..! и, кстати, если вы считаете, что любой из ответов здесь удовлетворил ваши потребности, попробуйте принять его, нажав на отметку, присутствующую в нем. И это не принуждение .. :) –

+1

Да, я ждал в течение 10 минут, так что это позволило бы мне принять ваш, поскольку он был самым подробным, и вы ответили первым. – SigmaDanny

3

Поскольку tp не является объектом jquery, он не будет иметь методов, связанных с jquery.

Использование,

$("#page_home").fadeIn('slow');