1

私はjavascriptコースを受講していますが、対応する要素で関数を実際に呼び出す場所がないため、以下の例で「正しいもの」がパラメーターに入力されている方法を理解できませんか?

  success: function(result) {
    $('myElement').html(result);
  }

私が見逃した、ある種のデフォルトの動作が行われているに違いないと思いますか?

誰かが私がこれをまっすぐにするのを手伝ってくれることを願っています. /クリストファー・グルドヴァーグ

4

3 に答える 3

1

jQuery の定義方法を単純化しましょう (非常に興味がある方は、実際の AJAX 実装をここで確認できます)。

var jQuery = {
    ajax: function (obj) {
        var xhr = new XMLHttpRequest();

        xhr.onreadystatechange = function () {
            if (this.readyState === 4 && this.status === 200) {
                obj.success(this.textContent);
            }
        }

        xhr.open(obj.url, 'GET', false);
        xhr.send(null);
    }
};

あなたがするとき;

jQuery.ajax({
    url: '/foo.php',
    success: function (response) {
        $('myElement').html(result);
    }
});

.. jQuery は、 を使用して success 関数を呼び出し、必要なデータ (この場合は)obj.success渡すthis.textContentことができます。

関数を呼び出していません。関数を定義し、それを別の場所に渡し、後で呼び出して、必要な情報を渡すことができるようにします。

于 2013-11-13T13:36:11.540 に答える
1

これはコールバックのように見えます。したがって、別の関数がある時点でそれを呼び出して渡す責任がありresultます。

したがって、関数を取る関数を呼び出していsuccessます。あなたは「ねえ、それが終わったら、私があなたに与えたこの成功関数を呼び出してresult、あなたが思いついたものをITに与えてください.

于 2013-11-13T13:34:28.727 に答える
0

Closureとして実装されたCallback関数です。

于 2013-11-13T13:35:36.313 に答える