[英]Start/stop function with setInterval
我有一个简单的setInterval
函数,用于单选按钮在加载时循环播放。
我想添加一个按钮,它可以启动或停止循环。 我已经为该函数添加了click函数,但是之后不知道如何停止它。
这是到目前为止我得到的: jsfiddle
另外,如果我连续多次单击该按钮,循环会发疯-寻求帮助的任何方法:)
ps我也检查过:
使用javascript,jQuery和
带有setTimeout / setInterval的Javascript循环问题
但是我在黑暗中想知道如何使用这些答案,因为我是javascript noob。
引用您的setInterval
以便可以使用clearInterval(yourreference)
。 要开始/停止,您可以添加一个额外的布尔变量来切换开始和停止。
var t;
var running = false;
$("#start-stop").click(function(){
clearInterval(t);
running = !running;
if (!running)
return;
t = setInterval(function(){
$('.wrap input')
.eq( ( $('input:checked').index() + 1 ) % 3 )
.prop('checked',true);
},1000);
});
尝试
jQuery(function () {
var timer;
$("#start-stop").click(function () {
if (timer) {
clearInterval(timer);
timer = undefined;
} else {
timer = setInterval(function () {
$('.wrap input')
.eq(($('input:checked').index() + 1) % 3)
.prop('checked', true);
}, 1000);
}
});
})
演示: 小提琴
没有clearInterval的解决方案
jQuery(function () {
var toggle = null;
$("#start-stop").click(function () {
if(toggle == null) {
toggle = false;
setInterval(function () {
if(toggle)
$('.wrap input').eq(($('input:checked').index() + 1) % 3).prop('checked', true);
}, 1000);
}
toggle = !toggle;
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.