Javascript计时器从输入值读取间隔

时间:2012-09-14 23:06:54

标签: javascript jquery

我有一个类型为text的输入,我在其中添加了一个值。

<input type="text" name="mydat" id="mydat" value="60000" />

我有一个每分钟运行一次的计时器。

<script>

window.setInterval(function(){

 //do something here

}, 60000);

</script>

在上面的代码中,区间值是硬编码的。

我该怎么做呢:

60000 = #mydat value

因此,每次循环时它都会从#mydat?

中读取值

3 个答案:

答案 0 :(得分:7)

递归使用setTimeout

var startTimer = function() {
    console.log("do something here");
    window.setTimeout(startTimer, parseInt($("#mydat").val(), 10));
});

startTimer();

答案 1 :(得分:5)

“每次循环”意味着值可能会发生变化 - 因此setInterval不正确,您需要重复使用setTimeout ...

function DoSomething() {
    //Do Stuff
    setTimeout(DoSomething, document.getElementById('mydat').value);
}
如果文本框的内容发生变化(在下一个事件触发后),

应该执行您需要的操作并更新超时

答案 2 :(得分:2)

您可以使用value属性检索输入的值。

var interval = document.getElementById('mydat').value;

window.setInterval(function() {
    // Some code...
}, interval);

或使用jQuery

var $interval = $('#mydat').val();

window.setInterval(function() {
    // Some code...
}, $interval);