3

jQuery 駆動の JavaScript ソース ファイルを熟読すると、次のように定義された関数が表示されます。

$(document).ready(function() {
    ...
});

$(function {
    ...
});

私は最初のものを理解していると思います.ページ全体がダウンロードされると起動する機能だと思います.はい? そうでない場合は、私を修正してください!

私を本当に混乱させるのは2番目のものです。これは無名関数ですか?どのように/どこで呼び出されますか? いつ呼び出されますか (ページの読み込み)?

JavaScript関数が古い方法で書かれているのを見るのに慣れていると思います:

function myFunction() {
    ...
}

その後、myFunction必要なときにいつでも電話します。この「古い」方法は、jQuery の構造と比べてどうですか? この混乱を理解するのを手伝ってくれてありがとう!

4

1 に答える 1

6

2番目の関数は、最初のメソッドの簡略化されたメソッドです。どちらも、ドキュメントの「準備完了」イベントのコールバックを登録します。

http://api.jquery.com/ready/

次の3つの構文はすべて同等です。

$(document).ready(handler)
$()。ready(handler)(これはお勧めしません)
$(handler)

編集: DOMを安全に更新できる場合、イベントは実際に発生します
readyこのイベントは、画像などの外部リソースが完全に読み込まれる前に発生しますが、スクリプトはレイアウト計算の完了に依存することが多いため、ほとんどのブラウザは、外部CSSの読み込みが完了するのを待ってから呼び出します。省略形のメソッドjQueryメソッドは、スクリプトの「準備ができている」ときにスクリプトがDOMを変更するための、覚えやすく直接的なメソッドを提供するため、非常に一般的です。

于 2012-09-18T16:49:52.613 に答える