我遇到停止执行某项功能的问题。我有10个函数名为start1,start2,start3,...然后我在函数中编号,就像你在代码片段中看到的那样。所有启动功能只有不同的编号,而另一个始终相同。现在问题是在start3
函数之后有时(不是每次)Interval都不会被清除。有时在7.函数之后也会发生这种情况。什么可以导致这种行为?
var valuem = 0, dir = 1;
start1();
function start1() {
$('#number').text(valuem);
function count1() {
valuem += dir;
$('#number').text(valuem);
if (valuem < 1) { dir = 1; }
console.log("start1");
}
$("body").on({
'touchstart mousedown': function (e) {
if ($('#number').text() > 5) {
window.clearInterval(myVar1);
$(e.target).off('touchstart mousedown');
window.setTimeout(function(){ start2();
}, 1000);
}
else {
$(e.target).off('touchstart mousedown');
clearInterval(myVar1);
console.log("fail");
}
}
});
var myVar1 = window.setInterval(count1, 1000);
}
function start2() {
valuem = 0, dir = 1;
$('#number').text(valuem);
function count2() {
valuem += dir;
$('#number').text(valuem);
if (valuem < 1) { dir = 1; }
console.log("start1");
}
$("body").on({
'touchstart mousedown': function (e) {
if ($('#number').text() > 5) {
window.clearInterval(myVar2);
$(e.target).off('touchstart mousedown');
window.setTimeout(function(){ start3();
}, 1000);
}
else {
$(e.target).off('touchstart mousedown');
clearInterval(myVar2);
console.log("fail");
}
}
});
var myVar2 = window.setInterval(count2, 1000);
}
控制台:
5 start3
start4
START3
start4
START3