js两种注册事件方式以及区别_html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<button>传统注册事件</button>
<button>方法监听注册事件</button>
<script>
    //1.传统的注册事件方式利用on开头,具有唯一性
    //下方的onclick会替换掉上面的onclick,导致上面的不执行
    var btns=document.querySelectorAll('button');
    btns[0].onclick=function () {
        alert('hi');
    }
    btns[0].onclick=function () {
        alert('how are you');
    }

    //2.w3c标准 推荐方式
    //eventTarget.addEventListener(type,listener[,useCapture]);
    //type:事件类型(不写'on') listener:事件处理函数 useCapture:一个布尔值,目前不需要
    btns[1].addEventListener('click',function () {
        alert('非传统方式1');
    })
    btns[1].addEventListener('click',function () {
        alert('非传统方式2');
    })
    //3.attachEvent i9以前版本支持,了解即可
    //btns[2].attachEvent('onclick',function () {
        //alert('ie老版本才支持的方式');
    //})
</script>
</body>
</html>