Cat*_*ish 6 javascript jquery delay settimeout
我div喜欢这个
<div id="sale">
........
</div>
Run Code Online (Sandbox Code Playgroud)
我试着用这两个
$('#sale').delay(3000).slideDown(500);
Run Code Online (Sandbox Code Playgroud)
和
setTimeout(sale(), 3000);
function sale() {
$('#sale').slideDown(500);
}
Run Code Online (Sandbox Code Playgroud)
但他们都没有工作.jQuery延迟说$('#sale').delay()不是一个函数,而setTimeout方式是无用的setTimeout调用(缺少引号).如果我在sale()通话中添加双引号,它只是说"销售没有定义".
为什么这些都不起作用?
我要做的就是在加载页面3秒后显示div.
Ivo*_*zel 15
如果setTimeout你只是做错了.
setTimeout(sale(), 3000); // will call sale and use the RETURN value in the callback but sale returns undefined
Run Code Online (Sandbox Code Playgroud)
你需要传递一个函数:
function sale() {
$('#sale').slideDown(500);
}
setTimeout(sale, 3000); // just pass in the reference to sale()
Run Code Online (Sandbox Code Playgroud)
其他可能性:
// 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)
Run Code Online (Sandbox Code Playgroud)
最后但并非最不重要:
setTimeout(function() { $('#sale').slideDown(500); }, 3000);
Run Code Online (Sandbox Code Playgroud)
你需要排队等候delay()工作.
$('#sale').queue(function() {
$(this).delay(3000).slideDown(500).dequeue();
});
Run Code Online (Sandbox Code Playgroud)
queue()如果您的下一个方法链是动画,Patrick Dw已经在评论中告知您不需要参与.看他的JSFiddle.
| 归档时间: |
|
| 查看次数: |
11450 次 |
| 最近记录: |