【发布时间】:2021-10-30 01:51:26
【问题描述】:
我正在使用 JavaScript 中的setInterval 函数制作计时器。
我做了一个设置按钮和一个删除按钮,按下它时将设置/删除间隔。
这是我的代码:
var interval;
function sets(){
interval = setInterval(function(){
document.querySelector('div').textContent =
parseFloat(document.querySelector('div').textContent)+1;
},1000);
};
function del(){
window.clearInterval(interval);
document.querySelector('div').textContent = 0;
};
<button onclick = 'sets()'>Set</button>
<button onclick = 'del()'>Delete</button>
<div>0</div>
我发现当我一直按下设置按钮时,div.textContent 会随着我按下设置按钮的次数越来越快。
有谁知道为什么会发生这种情况,有没有一些方法可以避免它,而无需将两个按钮合二为一?
感谢您的帮助和回复。
【问题讨论】:
-
因为您每次都在创建新的间隔之前清除任何以前的间隔,只需在创建新间隔之前执行
clearInterval(interval) -
按下设置按钮开始一个新的间隔。在开始使用 sets() 函数之前清除任何现有间隔
标签: javascript html button setinterval