私は何年も Javascript を使用してきましたが、jQuery のようなライブラリを使用する必要性を感じたことはありません。私が現在働いている場所では、このライブラリが使用されており、私はまだ純粋な Javascript に固執することを好みますが、非常に興味深いと感じました。
この質問には理論的な価値があります。.ready
DOM ツリーの一般的な要素に関連する場合、関数がどのように機能するのか疑問に思っています。
ドキュメントでどのように機能するかについてのスレッドを見つけまし.ready()
たが、jQuery が何らかの形で DOM event を使用していることを理解するのは難しくありませDOMContentLoaded
ん。
ただし、ページ内の特定の要素の読み込みのキャッチはそれほど明白ではありません。これは、知る限り、そのためのイベントがないためです。
jQuery は Javascript であり、ドキュメントのあらゆる部分にイベント リスナーを追加できるため、jQuery は<script>
ロード イベントを処理する要素の後にタグを追加しないか、解析がそれを通過した後に作成された場合は実行されません。点。
また、jQuery は setInterval に基づくチェックを使用せず、要素が作成されたかどうかを繰り返しチェックします。これは、多くのリソースを浪費するため (特に、多くの要素にロード イベントがある場合)、その作成時にコンテキストでトリガーされることはめったにないためです。エレメント。
私が想像できることは、DOMContentLoaded
イベントをキャッチすることです (つまり、要素のロード後ではなく、すべてのドキュメントがロードされた後)、jQuery は.ready()
ドキュメント イベントに配置された人為的なイベントを DOM ツリーに沿って表示される順序で呼び出します。それは正しいですか、それとも jQuery は回避策を見つけましたか?
要素のハンドラー内で、id「myelement」としましょう。 の後に表示される別の要素$(#myelement).ready()
を試してみると、「未定義」の代わりに正しい値が得られると思います。の後に html 内に配置されたスクリプトでその要素を取得します。getElementById("someID")
#myelement
#myelement
では、イベント内の(#myelement).ready()
すべてのイベントに応答する架空のイベント ハンドラーですか?element.ready()
DOMContentLoaded
書きすぎたらごめんなさい;;私が明確だったことを願っています