0

私は JavaScript 初心者ですが、これが機能する理由がわかりません。

$().load('/my/url/', {my:data, more:data}, jsFunc());

function jsFunc()
{
    $("#myid").val("yep");
}

しかし、これではありません:

$().load('/my/url/', {my:data, more:data}, function() {jsFunc()});

function jsFunc()
{
    $("#myid").val("yep");
}

$.load の代わりに $.ajax を試してみましたが、結果は同じでした。応答データを jsFunc() に渡します。そのため、関数内に jsFunc() が必要です。私はJavaScriptの経験があまりない単純なものだと確信しています。ありがとう。

すべての助けをありがとう。$.post が状況に最も適しているため、使用することにしましたが、現在、応答データに問題があります。私のコードは次のようになります。

$.post('/my/url/', {my:data, more:data}, function(data) {
    var strung = JSON.stringify(data)
    var parse = jQuery.parseJSON(strung)
    console.log(parse.some);}, 'json');

コンソールにログインして、何が戻ってくるかを確認しています。正しい値がログに記録されたら、コールバックを追加します。jQuery api ページから取得したプロセスですが、ログに記録するだけundefinedです。コンソール ログに変更parse.someするparseと、オブジェクトが表示され、要素を選択して正しいキーと値のペアを確認できます。どんな助けも甘いでしょう。

4

3 に答える 3

4

どちらも機能しません。最初のものは機能しているように見えます。関数jsFuncをすぐに呼び出すため、応答を待機しません。

を使用して空の jQuery オブジェクトを作成し、そのメソッド$()を使用するとload、結果を格納できる要素がないため、サーバーは呼び出されません。

コールバック関数を指定するには、関数の名前を使用します。

$('#someElement').load('/my/url/', {my:data, more:data}, jsFunc);

または関数式:

$('#someElement').load('/my/url/', {my:data, more:data}, function() { jsFunc(); });
于 2013-02-05T15:09:37.130 に答える
0

私の2番目の部分への答え:

返された JSON データは多くのオブジェクトで構成されていたため、返される値を取得するためにインデックスとキーを指定する必要がありました。

于 2013-02-06T15:24:08.457 に答える
0

最初のコード ブロックは単純に jsFunc() を呼び出し、その結果をパラメータとして load(..) メソッドに返します。そのパラメータは、ロードが完了したときに起動するコールバック関数であるはずなので、これは奇妙ですが、うまくいきますか? コールバック構文は、2 番目の例 (あなたが述べたものは機能しないと思います) に沿っています。

于 2013-02-05T15:05:10.797 に答える