我存储了以下全局jQuery函数,但是在页面加载时,我希望在1000次延迟后执行它。我的语法有问题吗?我知道延迟总是在功能之前。它没有回应。
全球职能:
function showpanel() {
$(".navigation").hide();
$(".page").children(".panel").fadeIn(1000);
;}
执行功能:
parallax.about.onload=function(){
$('#about').delay(3000).showpanel();
};
答案 0 :(得分:127)
$(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)
});
有关详情,请参阅here
答案 1 :(得分:42)
我搜索并发现以下网址中的解决方案更好。
http://www.tutorialrepublic.com/faq/call-a-function-after-some-time-in-jquery.php
值得尝试。
它将您的给定函数添加到要在匹配元素上执行的函数队列,该元素当前为 this 。
$(this).delay(1000).queue(function() {
// your Code | Function here
$(this).dequeue();
});
然后在队列中为匹配的元素执行下一个函数,该元素当前 this 。
答案 2 :(得分:22)
您可以在jQuery中添加超时功能(3秒后显示警报):
$(document).ready(function($) {
setTimeout(function() {
alert("Hello");
}, 3000);
});
答案 3 :(得分:1)
这个答案对于了解如何使用JQuery delay
功能延迟非常有用。
想象一下,您有一个警报,并且您想设置警报文本,然后显示警报,并在几秒钟后隐藏它。
这是一个简单的解决方案:
$(".alert-element").html("I'm the alert text").fadeIn(500).delay(5000).fadeOut(1000);
这很简单:
.html()
会更改.alert-element
.fadeIn(500)
将在500毫秒后淡入delay(5000)
函数在调用下一个函数.fadeOut(1000)
将淡出.alert-element
答案 4 :(得分:0)
您可以简单地使用 jQuery 的 delay() 方法来设置延迟时间间隔。
HTML 代码:
<div class="box"></div>
JQuery 代码:
$(document).ready(function(){
$(".show-box").click(function(){
$(this).text('loading...').delay(1000).queue(function() {
$(this).hide();
showBox();
$(this).dequeue();
});
});
});