我有垂直滾動條div。 Div通過ajax動態更新,並且使用jQuery的.html方法插入html。 div更新後,滾動條返回頂部,我試圖保持它在以前的位置。等待jquery .html方法完成渲染
這是我怎樣,我想它:
var scrollPos = $('div#some_id').scrollTop(); //remember scroll pos
$.ajax({...
success: function(data) {
$('div#some_id').html(data.html_content); //insert html content
$('div#some_id').scrollTop(scrollPos); //restore scroll pos
}
});
這種失敗。我最好的猜測是由於插入的html沒有呈現(即沒有滾動)而導致失敗。
例如,這個工程。
setTimeout(function(){
$('div#some_id').scrollTop(scrollPos);
}, 200);
但在我看來這是骯髒的黑客攻擊。我無法知道某些瀏覽器不會花費超過200毫秒的時間來渲染插入的內容。
有沒有辦法等待瀏覽器在繼續之前完成呈現插入的html?
http://stackoverflow.com/questions/2030497/how-can-you-get-your-code-to-wait-for-html -and-append-functions-to-complete應該有幫助 – Dhiraj