javascript - jQuery 延迟使用 append()

标签 javascript jquery

我无法使 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/

相关文章:

javascript - 在嵌套部分的路点上向前和向后更改滚动方向

javascript - bxslider : how to make pause in `onSlideBefore` ?

javascript - ng-repeat orderBy - 将项目显示为数组中出现的值

javascript - Highcharts饼图切片动画仅在抛出错误时起作用

javascript - 为什么我的组件没有导入到 App.vue 中?

JQuery 在开始时自动完成 UI 搜索

javascript - Typescript 2 如何强制执行不可为 null 的类型?

javascript - iframe 100% 全宽 bootstrap3

javascript - 基于 javascript 的 Web 应用程序的文件结构

javascript - jQuery Ajax 循环调用丢失局部变量引用