点击事件,当我们点击按钮就会触发它。在for循环中遍历按钮
然后每个按钮加了onclick事件
当我们页面点击按钮就会根据点击是哪个触发。
之前困惑了一下,js单线程的原因。会不会for循环在js加载的时候执行完成。当我
在点击按钮的时候不会进入到for循环。
其实我感觉这样理解不对。我们可以理解为for循环在加载了时候通过遍历给我们
每个按钮加了点击事件。所以我们点击的时候肯定会触发的。假如没有点击点击事件,类似
我们遍历一些东西,可能加载的过程执行了就不再执行了。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<button style="width: 60px; height: 30px">点击</button>
<button style="width: 60px; height: 30px">点击</button>
<button style="width: 60px; height: 30px">点击</button>
<script>
var btns = document.querySelectorAll("button");
for (var i = 0; i < btns.length; i++) {
btns[i].onclick = function () {
console.log("haha");
this.disabled = true;
setTimeout(
function () {
this.disabled = false;
}.bind(this),
3000
);
};
}
// console.log(btn);
// btn.onclick = function () {
// console.log("haha");
// this.disabled = true;
// setTimeout(
// function () {
// this.disabled = false;
// }.bind(this),
// 3000
// );
// };
</script>
</body>
</html>