我有这样的div
<div id="sale"> ........ </div>
我试着用这两个
$('#sale').delay(3000).slideDown(500);
和
setTimeout(sale(),3000); function sale() { $('#sale').slideDown(500); }
但他们都没有工作. jQuery延迟表示$(‘#sale’).delay()不是函数,而setTimeout方式表示无用的setTimeout调用(缺少引号).如果我在sale()调用周围添加双引号,它只是说“销售没有定义”.
为什么这些都不起作用?
解决方法
在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);