Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не работает setTimeout (https://javascript.ru/forum/misc/24394-ne-rabotaet-settimeout.html)

serb1897 28.12.2011 14:42

Не работает setTimeout
 
Добрый день.
Требуется при загрузке страницы выводить сообщение, а через 4 секунды его убрать. Написал следующую функцию:

setTimeout(function() {$('[name*=msg]').fadeOut('slow')}, 4000);


Код HTML выглядит так:

<div name="msg">
Я сообщение!!!
</div>


При выполнении скрипта сообщение никуда не исчезает, а в консоли ошибок пишет: Uncaught exception: ReferenceError: Undefined variable: $

Error thrown at line 5, column 35 in ...
$('[name*=msg]').fadeOut('slow')

Помогите, пожалуйста. В чем может быть ошибка? С JS редко работаю, поэтому подобные ошибки ставят в тупик :(

Pavel M. 28.12.2011 14:44

видимо, библиотеку jquery не загрузили :-)

Livaanderiamarum 28.12.2011 14:44

попробуй так
$(setTimeout(function() {$('[name*=msg]').fadeOut('slow')}, 4000))

Nekromancer 28.12.2011 14:46

Livaanderiamarum,
ыыы?

serb1897 28.12.2011 14:48

Цитата:

Сообщение от Livaanderiamarum (Сообщение 146802)
попробуй так
$(setTimeout(function() {$('[name*=msg]').fadeOut('slow')}, 4000))

Теперь ругается на первый "$"

Livaanderiamarum 28.12.2011 14:49

Цитата:

Сообщение от Nekromancer (Сообщение 146804)
Livaanderiamarum,
ыыы?

ну ВОЗМОЖНО, если он конечно jQuery подключил, каким то хреном (что вообще вряд ли если что) $ инициализирована после засовывания его функции в таймаут и в ней еще не видна)

Livaanderiamarum 28.12.2011 14:49

Цитата:

Сообщение от serb1897 (Сообщение 146805)
Теперь ругается на первый "$"

попробуй замени $ на слово jQuery везде где можно

serb1897 28.12.2011 14:50

Цитата:

Сообщение от Pavel M. (Сообщение 146801)
видимо, библиотеку jquery не загрузили :-)

Но вот этот код у меня работает
<input type="button" onclick="on()" value="Запустить таймаут"/>
<input type="button" onclick="off()" value="Остановить отсчет"/>
<script>
function go() { alert('Я сработало') }
 
function on() {
        timeoutId = setTimeout(go, 3000)
}
 
function off() {
        clearTimeout(timeoutId)
}
</script>

serb1897 28.12.2011 14:53

Цитата:

Сообщение от Livaanderiamarum (Сообщение 146807)
попробуй замени $ на слово jQuery везде где можно

Теперь ругается на jQuery вместо $

Livaanderiamarum 28.12.2011 15:01

Цитата:

Сообщение от serb1897 (Сообщение 146809)
Но вот этот код у меня работает
<input type="button" onclick="on()" value="Запустить таймаут"/>
<input type="button" onclick="off()" value="Остановить отсчет"/>
<script>
function go() { alert('Я сработало') }
 
function on() {
        timeoutId = setTimeout(go, 3000)
}
 
function off() {
        clearTimeout(timeoutId)
}
</script>



НО ВЕДЬ В ЭТОМ КОДЕ НЕТ ИСПОЛЬЗОВАНИЯ jQuery ЧТОБЫ ОПРЕДЕЛИТЬ ЕЁ РАБОТОСПОСОБНОСТЬ.......


Часовой пояс GMT +3, время: 03:43.