0

offsetHeightやoffsetWidthなど、HTMLDOMに含まれるまで理解できないhtml要素の属性がいくつかあります。createElement('div')でdivのoffsetHeightを使用したい場合、この要素がドキュメントに追加されたときに発生するイベントがあり、offsetHeightを使用できるようになりましたか?

4

3 に答える 3

1

DOMNodeInsertedあなたが探しているものかもしれません。DOMイベントの詳細については、https://developer.mozilla.org/en/DOM/DOM_event_referenceを参照してください。

于 2012-04-16T08:18:49.030 に答える
0

いいえ、そのためのイベントはないと思います。ただし、新しく作成された要素にプロパティを追加して、スクリプトに追加するように指示することはできます。あなたは次のようなことをすることができます:

function appendSignal(el,toElement){
  to.appendChild(el);
  el.isAppended = true;
}

var nwdiv = document.createElement('div');
// do stuff with nwdiv
appendSignal(nwdiv,document.body);
//doing other stuff
if (nwdiv.isAppended) {
  /* nwdiv.offsetHeight should be available... */
}
于 2012-04-16T07:51:06.133 に答える
0

一部のブラウザは、DOMに追加するとすぐに、これらの属性を初期化します。CSSルールを適用できるように、DOMに含める必要があります。

したがって、イベントを受け取る必要はありません。通常、要素が作成されたらすぐにDOMに要素を追加するだけで機能します。

ただし、必要な属性がすぐに初期化されない場合は、そのコードを別の関数に分割して(イベントハンドラーの場合と同様に)、setTimeout(otherFunction, 0)遅滞なくを使用して呼び出すことができます。JavaScriptの実行が完了すると、ブラウザはそれに応じてDOMの変更に応答し、すぐに他の関数を呼び出します。これは、イベントを開催するようなものですが、自分で起動します。

于 2012-04-16T08:19:33.150 に答える