2

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

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

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

<script>

window.setInterval(function(){

 //do something here

}, 60000);

</script>

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

我该怎么做:

60000 = #mydat 值

那么,每次循环时,它都会从 #mydat 读取值?

4

3 回答 3

7

setTimeout改为递归使用。

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

startTimer();
于 2012-09-14T23:11:14.560 回答
5

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

function DoSomething() {
    //Do Stuff
    setTimeout(DoSomething, document.getElementById('mydat').value);
}

如果文本框的内容发生变化(在下一个事件触发后),应该做你需要的并更新超时

于 2012-09-14T23:10:21.353 回答
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);
于 2012-09-14T23:12:29.303 回答