js中监听注册事件addEventListener的使用

语法:

element.addEventListener('type',function()[,useCapture])

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

type:事件类型字符串 如:click mouseover(鼠标经过) 等 注意这里不要加on!

useCapture:可写可不写参数 是一个布尔值 默认是false

特点:同一个元素 同一个事件可以注册多个监听器 但是使用传统的element.onclick = function(){} 一个事件只能注册一个点击函数

案例:此时点击btn 会相继弹出两个对话框 但是使用传统方式onclick 只会显示第二个‘你好2’ 因为会把第一个覆盖掉

<body>
    <button>提交</button>
</body>
<script>
    var btn = document.querySelector('button');
    btn.addEventListener('click', function() {
        alert('你好');
    })
    btn.addEventListener('click', function() {
        alert('你好2');
    })
</script>

 上面只讲了括号里的两个参数 下面就来讲第三个参数useCapture的使用方法 默认fasle

element.addEventListener('type',function()[,useCapture])

第三个参数如果是true 表示在事件捕获阶段 如果是false 表示事件在冒泡阶段

注:实际开发中很少使用事件捕获 更关注的事件冒泡

冒泡和捕获只能写其中一个 useCapture要么默认false 要么true

有些事件是没有冒泡的 如oblur onfous onmouseenter onmouseleave

案例:

<body>
    <div class="father">
        father
        <div class="son">son</div>
    </div>
    <script>
        //冒泡阶段 点击son盒子 先弹出son 后弹father
        //son ->father->body->html->document
        var father = document.querySelector('.father');
        var son = document.querySelector('.son');
        father.addEventListener('click', function() {
            alert('father')
        }, false)
        son.addEventListener('click', function() {
            alert('son')
        }, false)

        //捕获阶段 点击son盒子 先弹出father 后弹son
        //document->html->body->father->son
        // var father = document.querySelector('.father');
        // var son = document.querySelector('.son');
        // father.addEventListener('click', function() {
        //     alert('father')
        // }, true)
        // son.addEventListener('click', function() {
        //     alert('son')
        // }, true)
    </script>
</body>

 

 

相关知识点 和这个一起常用的:js中删除事件removeEventListener的使

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值