JavaScript——使用addEventListener添加事件处理程序

addEventListener添加事件处理程序

我们以前通常使用对象属性来给事件指定处理程序 ,如处理加载事件时,我们将事件处理程序赋给属性window.onload,又例如处理按钮点击事件,我们将事件处理程序赋给按钮的onclick属性。但是如果要给一个事件指定多个处理程序,这种方式就显得无能为力了。

所以,我们可以用DOM对象的方法addEventListener为一个事件指定多个事件处理程序,如为加载事件指定多个事件处理程序:

function init(){
      alert("init init init");
}

function sayHi(){
       alert("hi hi hi");
}
window.addEventListener("load",init,false);
window.addEventListener("load",sayHi,false);

addEventListener(param1,param2,param3)参数解释:

  1. param1表示事件名
  2. param2表示指向事件处理程序的引用
  3. param3是否让事件向上传递

这第三个参数param3表示是否将事件向上传递给父元素,就加载事件而言,设置哪个值都行,因为对象window已位于最顶层。但是如果在

中嵌套了 ,并希望点击元素时,
元素也将收到这个事件,那么这第三个参数就要设置为true。

removeEventListener删除事件处理程序

例子:

<!doctype html>
<html lang="en">
        <head><title>hello </title></head>
        <body>
        <script>
        window.onload = function(){
                var div = document.getElementById("div_click");
                div.addEventListener("click",myClick,false);
        };
        function myClick(e){
                var target = e.target;
                alert("id:"+target.id);
                target.removeEventListener("click",myClick,false);
        }


        </script>
                <div id="div_click">click click click</div>
        </body>
</html>

谢谢阅读!

猜你喜欢

转载自blog.csdn.net/weixin_40763897/article/details/88106017