2013-05-04 41 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