【问题标题】:Why delay() not working?为什么延迟()不起作用?
【发布时间】:2013-08-29 22:00:06
【问题描述】:

美好的一天。

我想让脚本在页面加载后 2 秒后开始工作。

为此我使用脚本:

setTimeout(function() {
    $("#searchbanner").animate( {width: "515"}, 1500 );
}, 2000);​

但是不行……

请告诉我如何正确制作?

【问题讨论】:

标签: jquery


【解决方案1】:

尝试使用 jQuery 的 delay() 方法:

$(document).ready(function() {
  $("#searchbanner").delay(2000).animate( {width: "515"}, 1500 );
});

这会在给定时间内延迟后续函数的执行;在这种情况下,它将等待 2000 毫秒,然后再运行 .animate() 方法。更多信息可以在on the jQuery site找到。

编辑:正如其中一位 cmets 所指出的,部分原始问题可能是您运行 setTimeout 呼叫的时间;如果是在页面加载期间,那么给出的时间是相对于脚本运行的时间,而不是页面完成加载的时间。通过使用 jQuery 的 .ready() 方法,执行将等待整个文档完全加载。

【讨论】:

  • +1 是针对$(document).ready 的,因为这可能是问题所在。
  • @NULL 本能地写下,但可能是次要问题 - 将添加注释,谢谢。
  • 无法正常工作 - testwork.ru/10003 块顶部带有“TEXT FOR TEST HEADER”字样
  • @AlexN 我正在查看该页面的源代码,但只看到了您的原始代码 - 这会引发错误。
  • @AdrianWragg 现在请看 - 第 93 行
【解决方案2】:

您的代码中有两个问题:

  • 如果 DOM 未在两秒后加载,则超时已指定选择器将不起作用,您可以使用 jQuery(function($) {}) 来解决此问题,它与 jQuery(document).ready(function() {}) 相同

  • 宽度值是一个字符串尝试将其更改为数字或将像素添加到末尾:


jQuery(function($) { // <-- This makes local $ === jQuery no matter what.
    setTimeout(function() {
        $("#searchbanner").animate({width: 515}, 1500);
    }, 2000);​ //                           ^ See changed it to a number
});

【讨论】:

  • 问题是脚本立即运行而无需等待两秒钟
【解决方案3】:

执行需要 3500 秒

2000 采取 settimeout 1500动画回调函数

现在需要 2000 秒

   setTimeout(function() {
      $("#searchbanner").animate( {width: "515"} ); }
      , 2000);​

现在需要 1500 秒

  $("#searchbanner").animate( {width: "515"},1500 ); 

【讨论】:

    【解决方案4】:

    您使用的不是delay,jQuery 方法,而是setTimeout,JavaScript 方法,问题可能出在代码的位置上。如果您不等待文档加载而只是尝试执行此操作,那么很多事情可能会出错。比如没有加载元素,比如没有加载jQuery。

    只需将 jQuery 封装在 $(document).ready(function() { }); 中即可等待文档加载

    【讨论】:

      【解决方案5】:

      试试这个

      setTimeout(function() {
        $("#searchbanner").animate( {"width": "515"}, 1500 ) }
        , 2000);​
      

      【讨论】:

      • 这似乎只是删除了分号的原始代码。
      猜你喜欢
      • 1970-01-01
      • 2016-06-28
      • 1970-01-01
      • 2017-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-31
      相关资源
      最近更新 更多