2010-12-06 76 views
11

我想添加一个div,5秒后删除它。 我试图5秒后删除新的div

$("#mainContentTD").prepend("<div style='color: #038a00; padding-bottom:10px;'>Your detailes where sucsesfuly... </div>").delay(5000).remove("this:first-child"); 

回答

26

您可以使用setTimeout这样的:

setTimeout(function(){ 
    $('#divID').remove(); 
}, 5000); 

5000(MS)是指5秒。您应该用您自己的div /元素ID替换divID

可以确保股利存在首先使用length

setTimeout(function(){ 
    if ($('#divID').length > 0) { 
    $('#divID').remove(); 
    } 
}, 5000) 
+2

其值得注意的是,检查div存在是完全没有必要的,因为在空的jQuery集合上调用$ .fn.remove()时,jQuery不会出错。 – tbranyen 2011-04-06 07:25:33

6

.delay()方法只利用标准效果队列或定制队列方法的工作原理。

.delay()方法最适合延迟排队的jQuery效果。因为它是有限的 - 例如,它不提供取消延迟的方法 - .delay()不能代替JavaScript的原生setTimeout函数,这可能更适合某些用例。

也就是说,你既可以使用setTimeout():(Demo

var $elm = $("<div style='color: #038a00; padding-bottom:10px;'>Your detailes where sucsesfuly... </div>"); 
$("#mainContentTD").prepend($elm); 
setTimeout(function() { 
    $elm.remove(); 
}, 5000); 

或者,你可以使用一个效果的方法来去除,以要素:(Demo

$("#mainContentTD") 
    .prepend("<div style='color: #038a00; padding-bottom:10px;'>Your detailes where sucsesfuly... </div>") 
    .children(':first') 
    .delay(5000) 
    .fadeOut(100); 
+0

嗯,也许我应该在发布之前更新:)但是,第一部分*可能会有用。 – jensgram 2010-12-06 08:02:48