1

つまりjQuery()、関数であり、ドキュメントは関数のパラメータとして使用されるオブジェクトjQuery()です。

jQuery(document)関数は、ready()メソッドを持つオブジェクトを返すと思いますか?それが正しいか?その場合、どのようなオブジェクトがjQuery(document)返されますか?

4

4 に答える 4

3

jQuery は多くの魔法を使用します (たとえば、 を使用する必要を避けるためnew)。

jQuery(...)渡された 0 個以上の要素 (引数に応じて) を含む新しい jQuery オブジェクトを常に作成します。

jQuery にはreadyメソッドがあるため、任意の jQuery オブジェクトで呼び出すことができます。$().ready()または$(document).ready()またはを使用するかどうかは問題ではありません。$('whatever').ready()常に同じことを行います。

ready: function( fn ) {
    // Attach the listeners
    jQuery.bindReady();

    // Add the callback
    readyList.add( fn );

    return this;
},

ご覧のとおり、thisはチェーンに対してのみ返されます。関数の実際のロジックではまったく使用されません。

于 2012-04-26T09:14:02.500 に答える
1

その場合、どのようなオブジェクトがjQuery(document)返されますか?

jQuery オブジェクトを返します。

jQuery オブジェクトには、HTML 文字列から作成された、またはドキュメントから選択されたドキュメント オブジェクト モデル (DOM) 要素のコレクションが含まれています。

jQueryメソッド自体はここに文書化されています: http://api.jquery.com/jQuery/#jQuery1

この関数の 2 番目と 3 番目の定式化では、他の方法で既に選択されている 1 つ以上の DOM 要素を使用して jQuery オブジェクトを作成します。この機能の一般的な用途は、コールバック関数に渡された要素で jQuery メソッドを呼び出すことです...

jQuery(...)関数は、次のように一般的に省略$(...)されます。

$(document)

基本的に、これは jQuery ライブラリーへの最初の共通フックです。次のように使用されることがよくあります。

$(document).ready(function() {
  // This code gets called once the document has finished loading
  // to the point where you'd want to use the jQuery library against the DOM
});

.readyメソッドに関するドキュメントは次のとおりです。

JavaScript は、ページのレンダリング時にコードを実行するためのロード イベントを提供しますが、このイベントは、画像などのすべてのアセットが完全に受信されるまでトリガーされません。ほとんどの場合、スクリプトは DOM 階層が完全に構築されるとすぐに実行できます。.ready() に渡されたハンドラーは、DOM の準備が整った後に実行されることが保証されているため、これは通常、他のすべてのイベント ハンドラーをアタッチして他の jQuery コードを実行するのに最適な場所です ...

于 2012-04-26T09:15:11.927 に答える
1

jQuery のドキュメントを参照してください。

http://api.jquery.com/jQuery/jQuery( element ) - 関数のバージョンに興味がありjQueryます。jQuery渡した要素を新しいオブジェクトでラップします。このオブジェクトには、イベント ハンドラーを関数として渡すことができる.ready()メソッドが含まれます。

于 2012-04-26T09:16:47.043 に答える
1

typeof document を取ると object が得られるので、jQuery(document) は document の jQuery オブジェクトを与えます。

これを jQuery オブジェクトとして扱うために $(this) のようにしたかもしれません。javascript キーワード this を使用すると、すべての dom メソッド/プロパティを呼び出すことができますが、jQuery メソッドおよびプロパティは呼び出すことができません。同様に $(this) を使用すると、すべての jquery メソッド/プロパティを呼び出すことができますが、基本的な dom メソッドおよびプロパティは呼び出すことができません。

$(document).ready() は、dom オブジェクト ドキュメントを取得して jQuery オブジェクトに変換し、ready 関数をアタッチすることを意味します。

詳細を説明するために、Chrome コンソールで指定したいくつかのコマンドを次に示します。

typeof document
"object"

$(document).ready
function (a){e.bindReady(),A.add(a);return this}

document.ready
undefined

ここで、未定義を示す document.ready は、dom に認識されていないことを明確にしており、$(document).ready は、jquery を使用してその定義を示しています。

于 2012-04-26T09:24:19.677 に答える