我创建了一些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增加并触发函数。 当我使用单击触发器时,上述功能很有效,但是如何在文档准备好后立即触发它。
由于
答案 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
});