我有一个按钮,每隔1秒触发设定间隔内的功能。 按钮的值更改为停止。当我点击停止时,我调用了clearinterval方法。 由于某种原因,清除间隔方法不起作用。
这是我的输入
<input id="trigger" type="button" value="start"/>
我的js功能
$(function() {
$('#trigger').click(function() {
var timerId = 0;
var trigger = $('#trigger').val();
if(trigger == 'start') {
timerId = setInterval(function() {
$('#trigger').val('stop');
main();
}, 1000);
} else if(trigger == 'stop') {
clearInterval(timerId);
$('#trigger').val('start');
}
});
});
答案 0 :(得分:4)
你有timerId被定义为click()范围的本地,所以当你第二次运行它(在stop事件中)时它将再次为0。试试这个
var timerId = 0;
$(function() {
$('#trigger').click(function() {
var trigger = $('#trigger').val();
if(trigger == 'start') {
timerId = setInterval(function() {
$('#trigger').val('stop');
main();
}, 1000);
} else if(trigger == 'stop') {
clearInterval(timerId);
$('#trigger').val('start');
}
});
});
答案 1 :(得分:3)
每次单击#trigger时,您都会重新初始化timerId。将var timerId = 0;
移到点击功能