我有这个jQuery函数:
$(document).ready(function() {
var timeVal = parseInt($('#timeMin').text());
var mins = 60;
$("#startbtn").click(function() {
setInterval(time, 1000)
});
function time() {
if (timeVal >= 0) {
if (mins > 0) {
if (mins <= 10) {
console.log(mins - 1);
$("#clock").html(timeVal + " : 0" + (mins - 1));
mins -= 1;
} else {
console.log(mins);
$("#clock").html(timeVal + " : " + (mins - 1));
mins -= 1;
}
} else if (mins === 0) {
timeVal -= 1;
mins = 60;
}
}
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="timeMin">
1
</div>
<button type="button" id="startbtn">
start
</button>
<br><br>
<div id="clock">
00:00
</div>
&#13;
因此,一旦我点击按钮(&#39; startbtn&#39;),它应该每秒执行一次。它工作正常。它是00:00。然而,当我第二次点击它时,它会变得更快。为什么会这样做。
PS。这是小提琴:
感谢您的回答。
答案 0 :(得分:3)
它不会更快,有多个间隔在运行,所以看起来更快。你永远不会清除原来的间隔。
您需要将间隔设置为变量并在每次单击按钮时清除它,然后开始执行相同操作的新变量:
var myInterval;
$("#startbtn").click(function(){
clearInterval(myInterval);
myInterval = setInterval(time, 1000);
});