Jquery 延迟后运行函数
我存储了下面的全局jQuery函数,但在页面加载时,我希望在1000次延迟后执行它。我的语法有问题吗?我知道延迟总是先于功能。它没有反应 全球职能:Jquery 延迟后运行函数,jquery,Jquery,我存储了下面的全局jQuery函数,但在页面加载时,我希望在1000次延迟后执行它。我的语法有问题吗?我知道延迟总是先于功能。它没有反应 全球职能: function showpanel() { $(".navigation").hide(); $(".page").children(".panel").fadeIn(1000); ;} parallax.about.onload=function(){ $('#about').delay(
function showpanel() {
$(".navigation").hide();
$(".page").children(".panel").fadeIn(1000);
;}
parallax.about.onload=function(){
$('#about').delay(3000).showpanel();
};
执行功能:
function showpanel() {
$(".navigation").hide();
$(".page").children(".panel").fadeIn(1000);
;}
parallax.about.onload=function(){
$('#about').delay(3000).showpanel();
};
有关更多信息,请参见我在以下URL中搜索并发现解决方案是更好 值得一试 它将给定函数添加到要在匹配元素上执行的函数队列中,该元素当前为this 然后在队列上为当前为this的匹配元素执行下一个函数 --编辑[可能的出列命令解释] 看看这个命令
我们命令jQuery引擎在内部队列中添加一个函数,然后在一段特定的时间后,我们命令它调用该函数,但到目前为止,我们从未告诉它从引擎中退出队列。正确的?!然后,在完成每件事情之后,我们将手动将其从jQuery引擎中取出。我希望解释能有所帮助。这个答案对于理解如何使用JQuery
delay
函数进行delay非常有用
假设您有一个警报,希望设置警报文本,然后显示警报,几秒钟后将其隐藏
以下是简单的解决方案:
$(".alert-element").html("I'm the alert text").fadeIn(500).delay(5000).fadeOut(1000);
非常简单:
<div class="box"></div>
$(document).ready(function(){
$(".show-box").click(function(){
$(this).text('loading...').delay(1000).queue(function() {
$(this).hide();
showBox();
$(this).dequeue();
});
});
});
.html()
将更改.alert元素的文本
.fadeIn(500)
将在500毫秒后淡入delay(5000)
函数将在调用下一个函数之前进行5000毫秒的延迟.fadeOut(1000)
将淡出.alert元素
您可以在jQuery中添加超时功能(3秒后显示警报):
您可以简单地使用jQuery的方法来设置延迟时间间隔 HTML代码:
<div class="box"></div>
$(document).ready(function(){
$(".show-box").click(function(){
$(this).text('loading...').delay(1000).queue(function() {
$(this).hide();
showBox();
$(this).dequeue();
});
});
});
您可以在这里看到一个示例:这就是您正在寻找的对象(man:)希望这有帮助,第一个明显的问题是您试图将showpanel作为另一个对象的方法调用(在本例中,是delay()调用返回的jQuery对象)。但是您已经声明showpanel是一个简单的、可直接访问的函数,而不是任何对象的方法。JavaScript不是这样工作的。你能总结一下解决方案并解释它是如何工作的吗?仅仅链接到一个解决方案并不理想,因为该链接可能在将来某个时候停止工作…@devlentinate我更新了这篇文章。阅读它,看看它是否简单易懂。希望它有用。这并不能解释什么是队列,或者为什么需要退出队列。退出服务器的目的是什么;我不希望函数执行不止一次,那么为什么要让它出列呢?
$('#main>ul').delay(100).queue(function(){$(this.attr('data-uk-grid','massy:true;parallax:150;').dequeue())$('#main>ul').delay(1).queue(函数(){$(this).removeClass('uk-grid-uk-flex-top-uk-flex-wrap-top').dequeue())代码>@Niklas我更新了帖子。请看一看。