使用动态参数禁用setInterval函数中的定时器
Disable timer within setInterval function with dynamic parameters
我想传递动态参数到setInterval函数(见这里的问题),特别是@tvanfosson的评论。但现在,我还想在满足特定条件时禁用那个计时器。我试图将定时器变量定义为全局变量,但我仍然得到定时器作为undefined
在这一行:console.log('else. timer=' + timer);
:
。计时器=定义
<script language="javascript" type="text/javascript">
var timer;
var params={};
params.color='light';
$(document).ready(function () {
timer=createInterval(showSmallWidget, params.color, 500);
});
function createInterval(f, dynamicParameter, interval) {
setInterval(function () {
f(dynamicParameter);
}, interval);
}
function showSmallWidget(color) {
if ($('#widget').html() == '') {
//do stuff
}
else {
console.log('else. timer=' + timer);
if (timer) { console.log('CLEAR TIMER'); timer.clearInterval(); timer = null; }
}
}
</script>
我试图创建一个JSFiddle,但我不能让它正常工作:https://jsfiddle.net/puhw3z2k/
有几个问题:
1)你必须从你的createInterval()
函数返回timerID:
function createInterval(f, dynamicParameter, interval) {
return setInterval(function () {
f(dynamicParameter);
}, interval);
}
2) clearInterval()
像clearInterval(timer)
一样工作,而不是timer.clearInterval()
。
相关文章:
- 如何在php/javascript中制作定时器和警报
- 双倒计时定时器
- 一个定时器事件会在多大程度上减慢我在JavaScript中的代码
- 向JavaScript对象添加侦听器函数
- Backbone.js比较器函数是'工作不正常
- 如何使这个JavaScript定时器正常工作
- 定时器输出保存
- 在两次java定时器循环后重定向访问者
- 如何解决jquery自定义定时器问题
- 用于多个from输入的JQuery日期选择器函数
- Javascript定时器函数
- Javascript定时器切换函数
- 使用动态参数禁用setInterval函数中的定时器
- 为什么clearInterval()函数不停止javascript定时器
- javascript setTimeout定时器步长函数
- 使用`?`在JavaScript定时器函数返回中
- 如何用定时器协调2个函数->javascript
- 如何清除定时器在setInterval函数与点击触发
- Javascript函数调用定时器不能正常工作
- 如何停止定时器与另一个函数javascript