如何在Jquery中的文档准备好上运行我的函数

时间:2012-04-19 12:18:01

标签: jquery function

我创建了一些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);
    });
};
});

现在,第一次加载页面时,我需要自己运行该函数,然后当我点击'next'时,id增加并触发函数。 当我使用单击触发器时,上述功能很有效,但是如何在文档准备好后立即触发它。

由于

3 个答案:

答案 0 :(得分:1)

你快到了。因为您正在将函数传递给$(),所以您正在使用ready处理程序(它是shortcut)。所以只需在最后添加一个函数调用:

};

question();

});

另外,你说过

  

当我使用点击触发器时,上述功能效果很好,但是如何在文档准备就绪后立即触发它。

......但是我没有看到你把它挂在任何地方。如果你不是,你也会想要这样做,例如:

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

    // Call right now, since we're in a `ready` handler
    question();
});

答案 1 :(得分:1)

你也可以使用:

$(function(){
  (question = function(){
    // your code
  })();
});

答案 2 :(得分: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
});