我有一个像这样的div
<div id="sale">
........
</div>
我尝试同时使用两者
$('#sale').delay(3000).slideDown(500);
和
setTimeout(sale(), 3000);
function sale() {
$('#sale').slideDown(500);
}
但他们都没有工作。 jQuery 延迟表示 $('#sale').delay()
不是函数,而 setTimeout
方式表示无用的 setTimeout
调用(丢失引号)。如果我在 sale()
调用周围添加双引号,它只会显示“Sale is not defined”。
为什么这两个都不行?
我想要做的就是让一个 div 在页面加载后 3 秒出现。
最佳答案
在 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);
关于javascript setTimeout 或 jquery delay - 两者都不适合我,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4262727/