Запустить функцию после задержки
У меня есть глобальная функция jQuery, но при загрузке страницы я хочу выполнить ее после задержки 1000. Что-то не так с моим синтаксисом? Я знаю, что задержка всегда идет перед функцией. Он не отвечает.
Глобальная функция:
function showpanel() {
$(".navigation").hide();
$(".page").children(".panel").fadeIn(1000);
;}
Выполняющая функция:
parallax.about.onload=function(){
$('#about').delay(3000).showpanel();
};
Ответы
Ответ 1
$(document).ready(function() {
// place this within dom ready function
function showpanel() {
$(".navigation").hide();
$(".page").children(".panel").fadeIn(1000);
}
// use setTimeout() to execute
setTimeout(showpanel, 1000)
});
Подробнее см. здесь
Ответ 2
Я искал и нашел решение в следующем URL лучше.
http://www.tutorialrepublic.com/faq/call-a-function-after-some-time-in-jquery.php
Стоит попробовать.
Он добавляет вашу заданную функцию в очередь функций, которые будут выполняться на совпадающем элементе, который в настоящее время этот.
$(this).delay(1000).queue(function() {
// your Code | Function here
$(this).dequeue();
});
а затем выполните следующую функцию в очереди для сопоставленного элемента (ов), который в настоящее время этот снова.
Ответ 3
Вы можете добавить функцию тайм-аута в jQuery (Показать предупреждение через 3 секунды):
$(document).ready(function($) {
setTimeout(function() {
alert("Hello");
}, 3000);
});
Ответ 4
Этот ответ просто полезен для понимания того, как вы можете сделать delay с помощью функции JQuery delay
.
Представьте, что у вас есть предупреждение, и вы хотите установить текст предупреждения, затем показать предупреждение и через несколько секунд скрыть его.
Вот простое решение:
$(".alert-element").html("I'm the alert text").fadeIn(500).delay(5000).fadeOut(1000);
Это просто:
-
.html()
изменит текст .alert-element
-
.fadeIn(500)
будет исчезать через 500 миллисекунд
- Функция JQuery
delay(5000)
сделает 5000 миллисекунд задержки перед вызовом следующей функции.
-
.fadeOut(1000)
в конце инструкции будет исчезать .alert-element