簡體   English   中英

Javascript:無法獲得新創建元素的高度

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM