开发者

JQuery delay() not delaying

开发者 https://www.devze.com 2022-12-22 22:27 出处:网络
Why does this empty the text immediately (ignoring delay)? $(\'#error_box_text\').html(\'error text\').delay(50开发者_开发问答00).html(\'\')

Why does this empty the text immediately (ignoring delay)?

$('#error_box_text').html('error text').delay(50开发者_开发问答00).html('')

#

jQuery 1.4


delay will never delay regular methods - only those who are pushed to the animation/effect chain. If you want to delay your html() call, use queue ( http://api.jquery.com/queue/ ):

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

It would be nice if you could do

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

but this isn't possible (yet).


Try

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

See delay()

jQuery.delay() is best for delaying between queued jQuery effects and such, and is not a replacement for JavaScript's native setTimeout function


Just use something like this:

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

精彩评论

暂无评论...
验证码 换一张
取 消