2013-11-27 168 views
2

我使用下面的代碼每秒重新加載div #console的內容。JQuery:加載內容後動態調整div的大小ajax

var update = setInterval(
    function(){ 
     $("#console").load("/console"); 
     $.ajaxSetup({ cache: false }); 
    }, 1000 
); 

這工作得很好。另外我想,div的重新調整是動畫效果。

我想是這樣的:

  $("#console").load("/console").animate({height: 'auto'}, 1000); 

但它不工作。有任何想法嗎?

UPDATE:

謝謝您的回答,那工作! 但是,仍然有一個問題,我沒有看到:

我打電話

animate({height: 'auto'}, 1000) 

但動畫纔可以處理數值,但現在有「自動」。 我打算,div始終適合內容。可以以某種方式實現嗎?

+0

你能提供一個[小提琴](http://jsfiddle.net/)再現?加載內容(「/ console」,function(){ $(this).animate({height:'auto')在內容加載前,您很可能試圖調整大小 –

+0

您是否嘗試過$(「#console」 },1000); });' – Outlooker

+0

'.animate()'需要一個數值作爲動畫的CSS元素。嘗試使用許多像素或百分比來代替「自動」,並查看它是否有效。 – sideroxylon

回答

1

這應該工作:

var update = setInterval(
      function() { 
       $("#console").load("/console", function (responseText, textStatus, XMLHttpRequest) { 
        if (textStatus == "success") { 
         $("#console").animate({ height: 'auto' }, 1000); 
        } 
       }); 
       $.ajaxSetup({ cache: false }); 
      }, 1000 
     ); 
+1

是的,使用'load'處理程序而不是鏈接'animate'應該做的訣竅 –