为什么延迟()不起作用?

时间:2013-08-27 08:30:01

标签: jquery

美好的一天。

我希望在页面加载后2秒钟后脚本开始工作。

为此我使用脚本:

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

但没有工作......

请告诉我,如何正确制作?

5 个答案:

答案 0 :(得分:4)

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

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

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

编辑:正如其中一条评论所述,原始问题的一部分可能是您运行setTimeout电话的时间;如果是在加载页面期间,则给定的时间是相对于脚本运行的时间,而不是页面完成加载时的时间。通过使用jQuery的.ready()方法,执行会一直等到整个文档被完全加载。

答案 1 :(得分:1)

您的代码中存在两个问题:

  • 如果两秒后没有加载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
});

答案 2 :(得分:0)

执行

需要3500秒

2000采取settimeout 1500动画回调功能

现在需要2000秒

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

现在需要1500秒

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

答案 3 :(得分:0)

您没有使用delay,jQuery方法,但setTimeout,JavaScript方法,问题可能在于代码的放置。如果你不是在等待文档加载而只是试图执行它,那么很多事情都可能出错。例如,没有加载的元素,jQuery没有加载,例如。

只需将jQuery封装在$(document).ready(function() { });

中,即可加载文档

答案 4 :(得分:-1)

试试这个

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