【问题标题】:why my delay function is not working in Jquery when i use it to delay $(document).ready ? help me out为什么当我使用它来延迟 $(document).ready 时,我的延迟功能在 Jquery 中不起作用?帮帮我
【发布时间】:2013-08-31 10:31:52
【问题描述】:

我希望我的div 在文档准备好 5 秒后显示出来,所以我使用了

$(document).ready(function(){
    delay(function(){
        $('#up').slideDown("slow");
    },4000);
});

但它不起作用,当我不使用延迟功能时,文档会加载。 它使用:

$(document).ready(function(){
    setTimeout(function(){
        $('.hidden').slideDown("slow");
    },4000);
});

而且我不想使用set-timeout 函数,那么我该如何使用延迟函数来做到这一点。

【问题讨论】:

  • 为什么不想使用setTimeout?这正是它的用途。我假设您对 jQuery 的 delay() 感到困惑,因为它旨在延迟 jQuery 动画队列中的操作。

标签: jquery delay document-ready


【解决方案1】:

javascript中没有延迟的方法,你需要如上所示使用setTimeout。

$(document).ready(function () {
    setTimeout(function () {
        $('.hidden').slideDown("slow");
    }, 4000);
});

jQuery 提供了一个.delay() 方法,用于延迟添加到队列中的项目

$('.hidden').delay(4000).slideDown("slow");

演示:Fiddle

如果您不想使用 setTimeout,请为其创建一个别名,例如 (Just for fun)

var delay = setTimeout;
delay(function () {
    $('.hidden').slideDown("slow");
}, 4000);

【讨论】:

  • OP 提到它正在与setTimeout 合作,但他不想使用它
  • @TusharGupta 是 OP 问题的解决方案
  • @TusharGupta OP 想要在 4 秒后显示元素,所以现在不是你做动画的时候......显示必须在 4 秒后开始
  • 是的,我知道,但没有其他选择可以使用setTimeout
  • @TusharGupta 那么这就是答案...不使用带有 4 秒动画的 slideDown
【解决方案2】:

您可以使用此代码

.slideDown()

$('#up').slideDown(4000); //time in ms

【讨论】:

  • 这将使slideDown 需要 4 秒,而不是等待 4 秒。
  • 是的,我知道,但除了使用他不想要的 setTimeout 之外别无他法。
  • 但是不符合他的要求。
  • @RoryMcCrossan 给了他一个选择,因为他已经有了答案setTimeout
【解决方案3】:

DEMO

试试这个

$(document).ready(function () {
   $('.hidden').delay(4000).slideDown("slow");
});

希望对你有帮助,谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    相关资源
    最近更新 更多