2012-01-14 61 views
3

我有一塊jQuery代碼,通過POST查詢頁面,然後該頁面返回一些文本顯示在頁面上。這是我使用的成功做到這一點的代碼:我試圖改變$("#poll").html(responseText)$("#poll").html(responseText).fadeIn(1500);jQuery:使用fadeIn()與.html()

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

,但它不工作。

我必須做什麼/更改以使文本淡入頁面?

+1

請創建一個小提琴。它有很多幫助。 – Diode 2012-01-14 08:39:42

回答

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

使用.hide()代替.fadeOut(0)>> $(「#poll」)。hide()。html(responseText).fadeIn(); – 2012-01-14 10:08:04

+0

我同意@frank_neff。 (因此,我的答案...) – PPvG 2012-01-15 11:49:41

1

在你淡入淡出之前,你必須確保它是隱藏的。試試這個:

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

或者,你可以確保該元素是用隱藏的CSS:

#poll { 
    display: none; 
} 

現場演示(展示了這兩種方法):http://jsfiddle.net/n5rnw/1/

0

因爲元素是展示由默認的,所以需要淡出/隱藏第一然後再淡入的elemet,像這樣的:使用一些樣本響應http://jsfiddle.net/:

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