给5个li绑定定时器,点哪里就停止那个
时间: 2024-01-21 14:20:05 浏览: 61
中断定时器.
这里提供一种思路,可以为每个li元素绑定一个定时器,然后给每个li元素添加点击事件,当点击某个li元素时,就停止该元素对应的定时器。
HTML代码:
```html
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
<li>item 4</li>
<li>item 5</li>
</ul>
```
JavaScript代码:
```javascript
// 获取所有li元素
const lis = document.querySelectorAll('li');
// 给每个li元素绑定定时器
for (let i = 0; i < lis.length; i++) {
// 使用闭包保存定时器ID
(function(i) {
lis[i].timerId = setInterval(function() {
console.log(`item ${i + 1}`);
}, 1000);
})(i);
}
// 给每个li元素添加点击事件
for (let i = 0; i < lis.length; i++) {
lis[i].addEventListener('click', function() {
// 停止该元素对应的定时器
clearInterval(this.timerId);
});
}
```
在上面的代码中,我们使用了两个for循环,第一个for循环给每个li元素绑定一个定时器,并使用闭包来保存定时器ID。第二个for循环给每个li元素添加点击事件,当点击某个li元素时,就停止该元素对应的定时器。
阅读全文