2

ときどき、次のようなパラメーターを持つ関数を見かけます。

$('#my_div').bind("mouseover mouseenter", function (e) {
    console.log(e);
    var el = $("#" + e.type);
    var n = el.text();

    el.text(++n);
});

関数に何が渡されているのかわかりません。のようなものであれば理解できます(function(e){ .... }(parameter);が、そうではありません。誰かが光を遮ることができますか

4

3 に答える 3

3

jQuery は実際にその関数を呼び出します。関数は JavaScript のファースト クラス シチズン オブジェクトであるため、引数として渡すことができます。ejQueryが提供するイベント引数用です。

このパターンは「コールバック」と呼ばれます。

于 2013-10-13T01:29:05.650 に答える
1

関数は実際にはまだ呼び出されていません。これは、「mouseover」または「mouseenter」イベントが発生したときにその関数を呼び出すようにブラウザに指示しています。この場合、ブラウザーがそれを行うとe、関数の側でローカル変数にバインドされるイベント オブジェクトが渡されます。

于 2013-10-13T01:43:59.150 に答える
1

常にパラメーターが渡されますが、直接渡すのはあなたではないというだけです。ブラウザは.

この場合、イベント ハンドラーについて話しています。基本的に何が起こるかというと、イベントがトリガーされると、ブラウザーはイベント オブジェクトをイベント リスナーのコールバック (指定したコールバック) に渡します。

イベント オブジェクトの内容を知りたい場合は、この mozilla ドキュメント ページhttps://developer.mozilla.org/en-US/docs/Web/API/Eventを調べてください。

ブラウザーがイベント オブジェクトの受け渡し全体をどのように処理するかを知りたい場合は、次の仕様を参照してください: http://www.w3.org/html/wg/drafts/html/master/webappapis.html#the-event-handler-processing -アルゴリズムは4)の下を見て、「イベントEを次のように処理する」と書かれています

于 2013-10-13T01:38:58.303 に答える