0

如何设置元素的 html,等待 2 秒,然后将 html 设置为其他内容?

例子:$("div").html("clicked").delay(2000).html("2 seconds have passed");

会发生什么:div 得到“2 秒已经过去”,而不是说“点击”2 秒,然后显示“2 秒已经过去”。

我需要做类似的事情.delay(2000, function() { $("div").html("2 seconds have passed"); })吗?

现场示例:http: //jsbin.com/UfaYusU/1/edit

谢谢!

4

3 回答 3

3

$.delay 用于延迟队列中的动画,而不是停止执行。

尝试这个:

setTimeout(function() {
      // Do something after 2 seconds
}, 2000);
于 2013-09-24T14:55:20.693 回答
2

.delay()默认情况下仅适用于动画功能,您可以使用.promise()方法:

$("div").html("clicked").delay(2000).promise().done(function() {
    $(this).html("2 seconds have passed");
});
于 2013-09-24T14:56:46.413 回答
0

setTimeout()如果您想在延迟后运行一些代码,请使用...

$("button").click(function(e) {
  $("div").html("clicked");
  setTimeout(function() {
    $("div").html("2 seconds have passed");
  }, 2000);
});

这是您的 jsbin 的更新版本...

于 2013-09-24T14:59:47.123 回答