延迟后运行功能

时间:2012-06-02 05:57:29

标签: jquery

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

全球职能:

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

执行功能:

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

5 个答案:

答案 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);

这很简单:

  1. .html()会更改.alert-element
  2. 的文字
  3. .fadeIn(500)将在500毫秒后淡入
  4. JQuery delay(5000)函数在调用下一个函数
  5. 之前会产生5000毫秒的延迟 声明末尾的
  6. .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();
      });        
    });
  });

您可以在此处查看示例:How to Call a Function After Some Time in jQuery