每3分钟执行一次代码的Jquery代码

时间:2014-01-18 05:56:57

标签: jquery

在按钮单击功能上,我必须每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);
      });  

}

1 个答案:

答案 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()方法的参数。