0

我创建了一些 jquery 代码,它获取一些 json 数据并将其显示在页面上。为了重用它,我将它包装在一个函数中:

$(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

你快到了。因为您将一个函数传递给$(),所以您连接到一个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 回答
1

您还可以使用:

$(function(){
  (question = function(){
    // your code
  })();
});
于 2012-04-19T12:25:11.133 回答
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 回答