JavaScript之监听注册事件
一、传统注册事件与监听注册事件的区别
事件的有唯一性的,比如说点击事件,如果给同一元素注册两个点击事件,那么只会执行最后的点击事件,前一个就被覆盖了!不会执行。
所以我们为了解决这个问题,出现了侦听注册事件。侦听注册事件就不会受事件唯一性约束,就可以注册多个事件,并依次执行。
<body> <div> <button>点我 </button> </div> </html> <script> let btn=document.querySelector('button'); // btn.onclick=function() // { // alert('我又跳出来了'); // }; // btn.onclick=function() // { // alert('打我啊笨蛋'); // }; btn.addEventListener('click',function() { alert('我又跳出来了'); });
//第一个参数是字符串的事件名称,第二个参数是需要执行的方法 btn.addEventListener('click',function() { alert('打我啊笨蛋'); }); </script>
二、删除事件
删除事件我们一般常规处理方式
let btn=document.querySelectorAll('button'); btn[0].onclick=function() { alert(11); //调用一次之后,就直接把事件赋值为空 btn[0].onclick=null; }
第二种监听事件删除事件方式
let btn=document.querySelectorAll('button'); btn[1].addEventListener('click',fu); function fu() { alert(22);
//就需要利用remove删除,第二个参数是方法名称。 btn[1].removeEventListener('click',fu); }
用哪种方式注册的,就必须要用那种方式删除