我无法使 jQuery 的延迟函数与 append
函数一起使用。怎么了?有没有办法让它工作?我想避免直接使用 setTimeout
以便让没有任何经验的客户更容易理解,他们将自己维护它。
我的代码:
$('#chatwindow').append('test').delay(2000).append('test');
在这段代码中,我同时打印了 'testtest',delay
被忽略了。
最佳答案
这是因为delay(2000)
默认情况下对 fx
队列进行排队,append()
从来不是其中的一部分。
相反,您可以使用 queue()
在其上专门对 append()
进行排队功能。
$('#chatwindow').append('test').delay(2000).queue(function (next) {
$(this).append('test');
next();
});
您可以在此处查看此工作的示例; http://jsfiddle.net/mj8qC/
但是,我同意@ascii-lime 的评论;我希望客户将有更多机会理解 setTimeout
,因为它是 JavaScript 的基本部分,不像 delay()
,它让 许多 用户感到困惑(来自在 StackOverflow 上提问的经验)。
FWIW,这个问题促使我写下 a blog post关于 delay()
的使用;它比这个答案更详细,对于其他人来说可能是很好的进一步阅读。
关于javascript - jQuery 延迟使用 append(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11085567/