3


DOMappendChild()メソッドに問題があります。ノードを作成し、このノードを親ノードに追加してから、node.clientWidthプロパティを読み取りたいのですが、ノードがまだ描画されていないため、0 が返されます。これが私のコードです:

var node = document.createElement('div');
node.textContent = 'some text';
parent.appendChild(node);
alert(node.clientWidth); //shows 0

onloadノードでonshowイベントを試してみましたが、トリガーすらされませんでした。私は使用できsetTimeout、機能していますが、これは完全な解決策ではありません。この問題の良い解決策はありますか?
下手な英語で申し訳ありませんが、どうもありがとうございました!

更新:わかりました、問題がわかりました。当時の親はDOMに追加されていませんでした。申し訳ありませんが、お時間をいただきありがとうございます

4

1 に答える 1

0

ブラウザが認識したらすぐにclientWidthを提供したい場合は、次のようにします。

var node = document.createElement('div');
node.textContent = 'some text';
parent.appendChild(node);
var width = node.clientWidth;
while (width == 0) {
    width = node.clientWidth;
}
// stuff
于 2012-12-06T21:02:30.570 に答える