JQuery延迟()不延迟

时间:2010-03-12 12:45:24

标签: jquery

为什么这会立即清空文本(忽略延迟)?

$('#error_box_text').html('error text').delay(5000).html('')

jQuery 1.4

3 个答案:

答案 0 :(得分:31)

delay 永远不会延迟常规方法 - 只有那些被推送到动画/效果链的人。如果您想延迟html()来电,请使用queuehttp://api.jquery.com/queue/):

$('#error_box_text').html('error text').delay(5000).queue(function() {
   $(this).html('')
});

如果能做的话会很好

$('#error_box_text').html('error text').delay(5000, function() { $(this).html('') });

但这还不可能(还)。

答案 1 :(得分:1)

尝试

var sel = $('#error_box_text');
sel.html('error text');
setTimeout(function(){
    sel.html('');
}, 5000);

参见 delay()

  

jQuery.delay()最适合延迟   排队的jQuery效果和   这样,并不是一个替代品   JavaScript的原生setTimeout   功能

答案 2 :(得分:0)

只需使用以下内容:

let r = $("#ur-div-id")
r.html(d)
setTimeout(() =>r.empty(), 4850);