80

我存储了以下全局 jQuery 函数,但是在页面加载时,我想在 1000 延迟后执行它。我的语法有问题吗?我知道延迟总是在功能之前。它没有响应。

全局函数:

function showpanel() {     
       $(".navigation").hide();
       $(".page").children(".panel").fadeIn(1000);
    ;}

执行功能:

parallax.about.onload=function(){
    $('#about').delay(3000).showpanel();
};
4

5 回答 5

151
$(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)

});

更多请看这里

于 2012-06-02T05:58:20.163 回答
49

我搜索并发现以下URL中的解决方案更好

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();
  
  });

然后在队列中为匹配的元素执行下一个函数,当前是这个

-- 编辑 [对出队命令的可能解释]

看一下命令

我们命令 jQuery 引擎在内部队列中添加一个函数,然后在特定时间后我们命令它调用该函数,到目前为止我们从未告诉它从引擎中取出它。对?!然后在每件事完成后,我们手动将其从 jQuery 引擎中取出。我希望解释能有所帮助。

于 2016-01-05T14:58:40.497 回答
34

您可以在 jQuery 中添加超时功能(3 秒后显示警报):

$(document).ready(function($) {
    setTimeout(function() {
     alert("Hello");
    }, 3000);
});
于 2016-12-23T10:55:59.783 回答
1

这个答案对于了解如何使用 JQuery函数进行延迟很有用。delay

假设您有一个警报,并且您想设置警报文本,然后显示警报并在几秒钟后将其隐藏。

这是简单的解决方案:

$(".alert-element").html("I'm the alert text").fadeIn(500).delay(5000).fadeOut(1000);

这很简单:

  1. .html()将更改文本.alert-element
  2. .fadeIn(500)将在 500 毫秒后淡入
  3. JQuerydelay(5000)函数会在调用下一个函数之前延迟 5000 毫秒
  4. .fadeOut(1000)在语句的最后会淡出.alert-element
于 2016-07-31T12:55:59.513 回答
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();
      });        
    });
  });

你可以在这里看到一个例子:How to Call a Function After Some Time in jQuery

于 2021-02-01T18:44:54.703 回答