在按钮单击功能上,我必须每3分钟执行一次代码段。 这是我正在使用的代码。
$('#rBtn').click(function() {
//我必须每隔3分钟执行以下代码
$.get('/getTests', function (jobs) {
seljobs = jobs;
var i = 0
jobs.forEach(function (n) {
html += '<option value="' + i + '">' + n.names + '</option>';
i++;
});
$('#jobSel').html(html);
});
});
我试过这种方式。
$('#rBtn').click(function() {
gettests();
});
我使用setTimeout
如下,但它不起作用。每3分钟一次。
function gettests(){
setTimeout(gettests,300000);
$.get('/getTests', function (jobs) {
seljobs = jobs;
var i = 0
jobs.forEach(function (n) {
html += '<option value="' + i + '">' + n.names + '</option>';
i++;
});
$('#jobSel').html(html);
});
}
答案 0 :(得分:2)
你需要这样做
function gettests() {
$.get('/getTests', function(jobs) {
seljobs = jobs;
var i = 0;
jobs.forEach(function(n) {
html += '<option value="' + i + '">' + n.names + '</option>';
i++;
});
$('#jobSel').html(html);
});
}
setTimeout(gettests, 180000);
setTimeout
应该在函数之外。setTimeout
只执行一次函数
如果您想每隔3分钟执行一次,请使用setInterval()
function gettests() {
$.get('/getTests', function(jobs) {
seljobs = jobs;
var i = 0;
jobs.forEach(function(n) {
html += '<option value="' + i + '">' + n.names + '</option>';
i++;
});
$('#jobSel').html(html);
});
}
var interv=setInterval(gettests, 180000)
停止使用clearInterval()
clearInterval(interv);
setInterval()
返回的ID值用作clearInterval()
方法的参数。