javascript setTimeout或jquery延迟 – 两者都不适合我

前端之家收集整理的这篇文章主要介绍了javascript setTimeout或jquery延迟 – 两者都不适合我前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这样的div
<div id="sale">
    ........
</div>

我试着用这两个

$('#sale').delay(3000).slideDown(500);

setTimeout(sale(),3000);

function sale() {
    $('#sale').slideDown(500);
}

但他们都没有工作. jQuery延迟表示$(‘#sale’).delay()不是函数,而setTimeout方式表示无用的setTimeout调用(缺少引号).如果我在sale()调用周围添加双引号,它只是说“销售没有定义”.

为什么这些都不起作用?

我要做的就是在加载页面3秒后显示div.

解决方法

在setTimeout的情况下,你只是做错了.
setTimeout(sale(),3000); // will call sale and use the RETURN value in the callback but sale returns undefined

你需要传递一个函数

function sale() {
    $('#sale').slideDown(500);
}

setTimeout(sale,3000); // just pass in the reference to sale()

其他可能性:

// no difference in this case
// Note: if it were obj.sale() then you would need to do this version
//       otherwise sale() will get called with the this set to window
setTimeout(function(){sale()},3000)

最后但并非最不重要:

setTimeout(function() { $('#sale').slideDown(500); },3000);

猜你在找的jQuery相关文章