1. ホーム
  2. jquery

[解決済み] .appendの後のjQuery関数

2023-01-11 11:10:05

質問

jQueryの後に関数を呼び出す方法 .append が完全に終了した後、どのように関数を呼び出すのですか?

以下はその例です。

$("#root").append(child, function(){
   // Action after append is completly done
});

問題の内容 複雑な DOM 構造が追加されたとき、追加関数のコールバック内でルート要素の新しいサイズの計算が誤っている。DOM がまだ完全にロードされておらず、追加された複雑な DOM の最初の子だけがロードされていると仮定します。

どのように解決するのですか?

ここには多くの有効な答えがありますが、そのどれもが、なぜそのように動作するのか、本当のところはわかりません。

JavaScriptのコマンドは、タイムアウトやインターバルを使って非同期であることを明示的に指示しない限り、来た順番に同期的に一度に1つずつ実行されます。

このことは、あなたの .append メソッドが実行され、そのメソッドが終了するまでは (タイムアウトやインターバルの可能性は無視して) 他の何も実行されないということです。

要約すると、コールバックは必要ありません。 .append は同期的に実行されるからです。