0

jsonデータを取得してページに表示するjqueryコードを作成しました。それを再利用するために、関数でラップしました:

$(function(e) {
var answer;
id = 1;

var question = function() {
    $.getJSON('getjson.php?id=' + id, function(data){
        console.log(data);
    var $htmlString = "";
     $.each(data, function(index) {
        $htmlString += "<h2>" + data[index].question + "</h2>";
                str =  data[index].answer;
                 answer = data[index].answer.split(', ');

    $htmlString += "<ul>";
    for(var index in answer) {

       $htmlString += "<li>" + index + " : " + answer[Math.floor(Math.random() * answer.length)] + "</li>";

    }
    $htmlString += "</ul>";
    });$('#content').html($htmlString);
    });
};
});

ここで、ページが初めて読み込まれるときに、その関数を単独で実行する必要があります。次に、[次へ] をクリックすると、id が増加し、関数がトリガーされます。上記の関数は、クリック トリガーを使用するとうまく機能しますが、ドキュメントの準備ができた直後にトリガーするにはどうすればよいでしょうか。

ありがとう

4

3 に答える 3

1

次のものも使用できます。

$(function(){
  (question = function(){
    // your code
  })();
});
于 2012-04-19T12:25:11.133 に答える
1

もうすぐそこです。に関数を渡しているため$()readyハンドラーに接続しています (ショートカットです)。そのため、最後に関数への呼び出しを追加するだけです:

};

question();

});

また、あなたは言った

上記の関数は、クリック トリガーを使用するとうまく機能しますが、ドキュメントの準備ができた直後にトリガーするにはどうすればよいでしょうか。

...しかし、あなたがそれを接続しているのをどこにも見ません。そうでない場合は、次のようにすることもできます。

    // Hook up click
    $("selector for elements to click on").click(question);

    // Call right now, since we're in a `ready` handler
    question();
});
于 2012-04-19T12:19:26.027 に答える
0
// Your function definition, which you could minify here or keep in a separate file
...var question...

// Shorthand for the jquery document.ready
$(function() {
    // Code here to call custom functions
});
于 2012-04-19T12:23:41.210 に答える