jQuery:附加()对象,删除()它与延迟()
那有什么问题?
$('body').append("<div class='message success'>Upload successful!</div>"); $('.message').delay(2000).remove();
我想追加一个成功的消息到我的HTML文件,但只有2秒。 之后,div应该再次被删除。
我在这里做错了什么?
问候
直接使用setTimeout()
(内部使用.delay()
)在这里更简单,因为.remove()
不是排队函数,总的来说应该是这样的:
$('body').append("<div class='message success'>Upload successful!</div>"); setTimeout(function() { $('.message').remove(); }, 2000);
你可以在这里试试 。
.delay()
是为animation(或任何指定的)队列,要使用它,你必须做一些事情:
$("<div class='message success'>Upload successful!</div>").appendTo('body') .delay(2000).queue(function() { $(this).remove(); });
哪个在这里有用,但是为了链接国际海事组织,这只是矫枉过正,效率极低。 通常情况下,您还必须调用出列或下一个函数,但是由于您正在移除元素,因此…
我认为正确的做法是使用jQuery队列方法:
$("<div class='message success'>Upload successful!</div>") .appendTo('body') .delay(2000) .queue(function() { $(this).remove(); });
也许我正在使用过时的jQuery,但是其他答案中build议的方法似乎都不适用于我。 根据http://api.jquery.com/delay/ ,延迟是针对animation效果的。
使用setTimeout()
但是,我很好地工作:
$('body').append("<div class='message success'>Upload successful!</div>"); setTimeout(function(){ $(".message").remove(); }, 2000);
而只是踢,你可以做以下,使用延迟:
$('body').append("<div class='message success'>Upload successful!</div>"); $('.message').show('fast').delay(2000).hide('fast') $('.message').remove();