An0*_*d3r 1 javascript jquery setinterval
setInterval()只运行一次...... WTF正在进行中?
SO正在询问更多细节,但提供一个JSFiddle就像我可以描述一样?我尝试过使用匿名函数,现在又回调了.我只是不明白吗?: - /
HTML
<script src="http://code.jquery.com/jquery-2.1.3.min.js"></script>
<div id="qanda-timer-container">
<div class="qanda-timer">
<span id="qanda-time-remaining"></span>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
JS
function intervalFunc(thinkingTime, answerTime)
{
jQuery('#qanda-time-remaining').text(''+(thinkingTime - 1));
}
function enableTimer(time)
{
var intervalID;
var hasThinkingTime = true;
var thinkingTime = time;
var hasAnswerTime = true;
var answerTime = 10;
if(hasThinkingTime && hasAnswerTime)
{
setInterval( intervalFunc(thinkingTime, answerTime), 1000);
}
setTimeout(function(){
clearInterval(intervalID);
}, time * 1000);
}
enableTimer(30);
Run Code Online (Sandbox Code Playgroud)
您需要在函数中包装区间处理程序:
intervalId = setInterval( function() { intervalFunc(thinkingTime, answerTime) }, 1000);
Run Code Online (Sandbox Code Playgroud)
您发布的代码是调用函数并将结果传递给setInterval().间隔计时器根本没有运行!
执行此操作后,您需要解决维护降序时间值的问题.目前,您将变量作为参数传递并从中减去一个,但不更新原始变量.
function intervalFunc(thinkingTime, answerTime)
{
jQuery('#qanda-time-remaining').text(''+(thinkingTime));
}
Run Code Online (Sandbox Code Playgroud)
然后更改setInterval设置:
intervalId = setInterval( function() { intervalFunc(--thinkingTime, answerTime) }, 1000);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1259 次 |
| 最近记录: |