САЙТЫ  ПОД  КЛЮЧ
ОНЛАЙН-СЕРВИСЫ СПРАВОЧНИКИ SEO-ИНСТРУМЕНТЫ РАЗВЛЕЧЕНИЯ

Справочник Javascript

setTimeout

Синтаксис

timeout_id = window.setTimeout(func|code, delay)

Аргументы

func|code
Функция или строка кода для выполнения
delay
Задержка в миллисекундах, т.е 1000 это 1 секунда

Описание, примеры

В отличие от метода setInterval, setTimeout выполняет код только один раз.

В каком виде указывать первый параметр - разницы нет.
При указании строки кода - динамически создается функция func с телом code.

Следующие два вызова почти одинаковы:

Выделить все
setTimeout('alert("прошла секунда")', 1000)
 
function sec() {
  alert("прошла секунда")
}
setTimeout(sec, 1000)

Но более правильным считается объявление функции в явном виде, например так:

setTimeout(function() { alert(...) }, 1000)

Вызов со строкой существует для совместимости с прежними версиями javascript.

this

Функция выполняется в другом контексте, отличном от контекста, в котором задается setTimeout.

При этом значение this = window, поэтому о передаче правильного this надо позаботиться отдельно.

Пример: Без передачи this
object = { 
   func: function() { alert(this) }
}
 
setTimeout( object.func , 1000) // this будет равно window
Пример: Передача this через call
object = { 
   func: function() { alert(this) }
}
 
// правильный вариант с передачей this
setTimeout( function() { object.func.call(object) } , 1000)

Отмена выполнения

Вы можете отменить выполнение setTimeout при помощи clearTimeout, используя для этого идентификатор таймаута.

Пример:
var timeout_id = setTimeout(...)
clearTimeout(timeout_id)
Пример: Рабочий пример
<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>

См. также


 

Это интересно

Самые жесткие ограничения для интернет-пользователей существуют в Пакистане. Местным любителям поблуждать по Сети закрыт доступ почти к полусотне сайтов – например, к Facebook и YouTube. Причина – несоответствие этих ресурсов нормам исламской морали. Странно, но доступ ко многим откровенным сайтам при этом остается открытым…


Наши реквизиты
WMID: 309688839848
WMR: R325885159214
E-mail: 
  BL:Бизнес-уровень [BL]
QR-код сайта
Онлайн-радио
Больше радиостанций