[英]Javascript: unable to get height of newly created element
用新元素(ei body.append(html))更新DOM后,我無法立即獲得新更新元素的高度(例如body.height())。 部分修復是設置時間間隔並在時間間隔結束時獲得高度(setTimeout(“alert(body.height)”,500))。
有更好的想法嗎? 就像DOM完全更新后的回調一樣? 謝謝。
編輯:這只發生在后台有很多事情發生時(即首次加載頁面時)。 如果沒有其他任何處理,似乎頁面更新幾乎是即時的。 我需要的是一個回調,或DOM重組時的指示!
編輯:問題來自瀏覽器被其他進程“分心”,這使得瀏覽器無法在元素追加后立即更新。 我該如何解決?
超時方法有效,因為渲染引擎有機會在那里顯示新元素,給它一個更改來渲染它,從而為它賦予一個高度。
您可以將超時設置為0並仍然具有相同的效果。
使用jQuery對我來說很好 。
在jsfiddle演示中我放了下一個代碼:
$(function(){
var jTest = $('#test');
console.log('The height:',jTest.innerHeight(),jTest.height()); //Show me 'The height: 20 20'
jTest.append('<div><br/>How are you?</div>');
console.log('The height:',jTest.innerHeight(),jTest.height()); //Show me 'The height: 60 60'
});
除非你的意思是javascript解決方案或放一個jsFiddle演示來顯示你的錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.