• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:appendChildを何処で書こうと、関数始めで動く物なのでしょうか)

appendChildと関数の実行タイミング

このQ&Aのポイント
  • javascript初心者の質問ですが、appendChildで要素を移動させようとしてもうまくいきません。
  • 関数を呼び出した直後にappendChildを行っても、要素が移動先の親要素を基準にして動いてしまいます。
  • この現象はMac版のsafariとfirefoxで確認されており、IEでは動かないと思われます。

質問者が選んだベストアンサー

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

とりあえずsetInterval は setTimeoutの間違い? クロージャ云々は関係なくてsetTime~の動作を考えてみるといいかと。 (タイマー設定の関数はwaitがかかるわけではなくてタイマーハンドラを登録するだけです) goDown内でsetTimeoutが実行された後、goDown、slideDown関数は終了。 即、addElementの次のステップ(appendChild)が実行されます。 タイマー契機で2回目以降のgoDown実行時、elementは既にshitaの子要素になってます。 offset>pos が偽になったタイミングでaddElementが実行されるような仕組みに組み替えるしかないですね。

amcars
質問者

お礼

今読むと良く理解出来ない質問文にも関わらず。回答ありがとうございます。 setIntervalはsetTimeoutのつもりで使っていましたが、動作が違うようですね。。 なるほど、そのような仕組みですか。。ちょっと組み替えてみます。

関連するQ&A