jQuery:使用fadeIn()和.html()

时间:2012-01-14 08:36:39

标签: javascript jquery

我有一段jQuery代码通过POST查询页面,然后该页面返回一些显示在页面上的文本。这是我用来成功执行此操作的代码:

$.post(
    "query.php?module=vote",  
    {answer: ans, pid: pid, to: to, page: page},
    function(responseText){  
        $("#poll").html(responseText);  
    },  
    "html"  
);

我尝试将$("#poll").html(responseText)更改为$("#poll").html(responseText).fadeIn(1500);,但它不起作用。

我必须做什么/改变才能让文字淡入页面?

3 个答案:

答案 0 :(得分:4)

为了淡入,元素必须首先淡出。尝试立即淡出(0秒),然后使用回调函数添加内容并淡入。

$.post(
    "query.php?module=vote",  
    {answer: ans, pid: pid, to: to, page: page},
    function(responseText){  
        $("#poll").fadeOut(0,function(){
             $(this).html(responseText).fadeIn();
        }); 
    },  
    "html"  
);

答案 1 :(得分:1)

在你淡入某些东西之前,你必须确保它是隐藏的。试试这个:

$("#poll").html(responseText).hide().fadeIn(1500);

或者,您可以确保使用CSS隐藏元素:

#poll {
    display: none;
}

现场演示(显示两种方法): http://jsfiddle.net/n5rnw/1/

答案 2 :(得分:0)

因为元素是默认显示的,所以首先需要 fadeOut / hide 然后再次淡入淡出元素,如下所示:

$('#element').fadeOut(500).html(content).fadeIn(500);