欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JavaScript注册、删除事件的两种方式--传统注册方式、方法监听注册方式

程序员文章站 2022-03-07 22:03:20
JavaScript注册事件的两种方式–传统注册方式、方法监听注册方式注册事件有两种方式:传统方式和方法监听注册方式。(还有一种IE9以前支持的方式attachEvent注册事件,现在不常用)传统注册方式利用on开头的事件,如onclick。btn.onclick = function(){}传统事件注册具有唯一性:同一个元素同一个事件只能设置一个处理函数,最后注册的处理函数将会覆盖前面注...

JavaScript注册事件的两种方式–传统注册方式、方法监听注册方式

注册事件有两种方式:传统方式和方法监听注册方式。(还有一种IE9以前支持的方式attachEvent注册事件,现在不常用)

传统注册方式

利用on开头的事件,如onclick。

<button onclick = “alert(‘123’)”></button>

btn.onclick = function(){}

传统事件注册具有唯一性:同一个元素同一个事件只能设置一个处理函数,最后注册的处理函数将会覆盖前面注册的处理函数

方法监听注册方式

addEventListener();是一个方法。同一个元素同一个事件可以之策多个监听器,会按照注册的顺序依次执行。

eventTarget.addEventListener(type,listener[,useCapture])

eventTarget.addEventListener()方法将指定的监听器注册到eventTarget(目标对象)上,当该对象触发指定的事件时,就会执行事件处理函数。

三个参数:

type:事件类型字符串,比如 click、mouseover。这里不需要加on

listener:事件处理函数,事件发生时,会调用该监听函数

useCapture:可选参数,是一个布尔值,默认是false。

<body>
    <button>
        传统注册事件
    </button>
    <button>
        事件监听注册事件
    </button>
    <script>
    	var btns = document.querySelectorAll('button');
        //传统注册事件
        btns[0].onclick = function(){
            alert('hi');
        }
        btns[0].onclick = function(){
            alert('传统注册事件');
        }
        //运行程序,点击传统注册事件按钮,弹出提示框:传统注册事件。第一个hi提示框被覆盖,不会弹出。
        
        //事件侦听注册事件
        btns[1].addEventListener('click',function(){
            alert('事件监听注册事件')})
        btns[1].addEventListener('click',function(){
            alert('事件监听注册事件2')})
        //运行程序,点击事件监听注册事件按钮,弹出提示框:事件监听注册事件,点击确定后,再次弹出“事件监听注册事件2”的提示框
        //在事件侦听注册事件的方法中事件类型要加引号并且没有on
    </script>
</body>

JavaScript删除事件(解绑事件)

传统方式删除事件

evenTarget.onclick. = null;

方法监听方式删除事件

evenTarget.removeEventListener()

<body>
    <div>1</div>
    <div>2</div>
    <div>3</div>
    <script>
    	var divs = document.querySelectorAll('div');
        divs[0].onclick = fuction(){
            alert(123);
            //每次点击div1都会弹出来一个提示框123,想要第二次点击时不弹出提示框。
            //传统方式解绑事件
            divs[0].onclick = null;
        }
        //将fn函数绑定到点击事件中,里面的fn不需要加小括号
        divs[1].addEventListener('click',fn);
        //fn函数的内容
            function fn (){
                alert(456);
                //每次点击div2都会弹出来一个提示框456,想要第二次点击时不弹出提示框。
           		//方法监听注册方式
                //因为要考虑到解绑,所以在前面绑定的时候不使用匿名函数的绑定方式。
                diva[1].removeEventListener('click',fn)
            }
            
            
        })
    </script>
</body>

本文地址:https://blog.csdn.net/weixin_42579348/article/details/110121039