2012-02-03 112 views
1

我试图在文档加载时隐藏(位置相对,顶部-150px)的横幅(宽度100%,高度150px)。我想在3秒后显示它,我做错了什么?这看起来很简单吗?为什么这个脚本在页面加载后3秒动画(jquery)?

$(function() { 
    var t = setTimeout(popmenu(), 3000); 

    function popmenu() { 

     $('#bcktop').animate({ 
       top : "+=150" 
      }, 150 
     );    
    }  
}); 
+0

您是否试过使用$(window).load(function()而不是document.ready? – bmoran 2012-02-03 21:13:10

回答

4

要调用popmenu而不是传递函数:

var t = setTimeout(popmenu(), 3000); 

应该是:

var t = setTimeout(popmenu, 3000); 
+0

惊人的,这么简单的细节!谢谢 – Joel 2012-02-03 21:52:18

1

你想传递一个函数引用到setTimeout功能。通过发送类似this()的函数,您可以将该函数的返回值发送到setTimeout

更改此:

var t = setTimeout(popmenu(), 3000); 

这样:

var t = setTimeout(popmenu, 3000); 
0

您还可以使用jQuery的.delay()功能:各地popmenu

$('#bcktop').delay(3000).animate({ 
    top: "+=150" 
}, 150); 
0

添加引号(),并把function popmenu()$(function() { });修复了它:

$(function() { 
    var t = setTimeout("popmenu()", 3000); 
}); 

function popmenu() { 

    $('#bcktop').animate({ 
      top : "+=150" 
     }, 150 
    );    
} 
相关问题