<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>事件绑定与监听的区别</title>
</head>
<body>
<button id="btnA">按钮A</button>
<button id="btnB">按钮B</button>
<script type="text/javascript">
var btnA = document.getElementById("btnA");
var btnB = document.getElementById("btnB");
btnA.onclick = function () {
alert("点第一下");
};
btnA.onclick = function () {
alert("点第二下");
};
btnB.addEventListener(
"click",
function (event) {
alert("点第一下");
},
false
);
btnB.addEventListener(
"click",
function (event) {
alert("点第二下");
},
false
);
</script>
</body>
</html>
根据上述代码 ,我们首选给 按钮A 依次绑定了两个 onclick 事件,然后给 按钮B 依次监听了两个 onclick 事件;
但是结果我们发现,当我们点击 按钮A时,无论是第几次点击,永远只会弹出 ‘点第二下’;当我们点击 按钮B时,不论是第几次点击,每次点击都会
依次弹出 ‘点第一下’和‘点第二下’
使用on事件名的形式绑定事件后绑定会覆盖前面绑定的事件,也就是最后一个绑定的事件会生效;
使用addEventListener绑定事件则不会覆盖,可同时在一个元素上绑定多个相同的事件。