2013-05-04 42 views
1

我試圖更新.html(''),然後delay(400)fadeOut,此後更新.html(''), 最後fadeIn再次...jQuery的的.html,然後.fadeout

if(data==1) { 
var html = "an other text" 
$('#nyhedsbrev').html('<br/><p style=\"width:100%; text-align:center;\">Tak for din tilmelding</p><br/>'); 
$('#nyhedsbrev').delay(2000).fadeOut().html(html).fadeIn(); 
} 

,如果我只用線兩條工作正常 - 或者如果我只嘗試第一行。 然而,這些都不起作用。

我也嘗試將兩條線結合 - 刪除第二個$('#nyhedsbrev)。 你能解釋我怎樣才能首先顯示新文本 - 然後淡出它取代innner html然後淡入?

        • 澄清 - - - 的問題是,第一部分不顯示 - 淡出/在作品...
+0

'html(html)'??? ..你沒有在任何地方定義'html'或者我缺少一些東西 – bipen 2013-05-04 09:03:55

+0

html是來自if之前的內部html - 那部分工作:) – 2013-05-04 09:17:33

回答

0

這jfiddle工程..

http://jsfiddle.net/sN5e5/1/

$("#test").on('click', function(e) { 
var oldhtml = "Tak for din tilmelding"; 
var newhtml = 'I m the new content of the div'; 
$('#nyhedsbrev').fadeOut(500, function() { 
    $('#nyhedsbrev').html(newhtml).fadeIn(); 
    $('#nyhedsbrev').delay(2000); 
    $('#nyhedsbrev').fadeIn(500, function() { $('#nyhedsbrev').html(oldhtml); }); 
}); 

});

2

jQuery fadeIn/fadeOut(和其他動畫方法)可以將回調作爲第二個參數。

if(data==1) { 
    var newhtml = html; 
    $('#nyhedsbrev').fadeOut(500, function() { 
     $('#nyhedsbrev').html(newhtml).fadeIn(); 
    }); 
} 

工作實施例:jsFiddle

+0

+1只是一件事,默認情況下fadeOut的持續時間是400不是500 – 2013-05-04 09:08:17

+0

我想要實現的是: - 先存儲原始文本 - 然後顯示臨時消息 - 然後淡出 - 然後恢復原始文本 - 然後淡入 – 2013-05-04 09:46:45

+0

您的解決方案只替換文本 - 因此,它不執行我需要的操作... – 2013-05-04 10:01:39