- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:appendChildを何処で書こうと、関数始めで動く物なのでしょうか)
appendChildと関数の実行タイミング
このQ&Aのポイント
- javascript初心者の質問ですが、appendChildで要素を移動させようとしてもうまくいきません。
- 関数を呼び出した直後にappendChildを行っても、要素が移動先の親要素を基準にして動いてしまいます。
- この現象はMac版のsafariとfirefoxで確認されており、IEでは動かないと思われます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
とりあえずsetInterval は setTimeoutの間違い? クロージャ云々は関係なくてsetTime~の動作を考えてみるといいかと。 (タイマー設定の関数はwaitがかかるわけではなくてタイマーハンドラを登録するだけです) goDown内でsetTimeoutが実行された後、goDown、slideDown関数は終了。 即、addElementの次のステップ(appendChild)が実行されます。 タイマー契機で2回目以降のgoDown実行時、elementは既にshitaの子要素になってます。 offset>pos が偽になったタイミングでaddElementが実行されるような仕組みに組み替えるしかないですね。
お礼
今読むと良く理解出来ない質問文にも関わらず。回答ありがとうございます。 setIntervalはsetTimeoutのつもりで使っていましたが、動作が違うようですね。。 なるほど、そのような仕組みですか。。ちょっと組み替えてみます。