JavaScript-事件-笔记

本文详细介绍了JavaScript中绑定事件的三种方式:传统方式(通过元素属性)、内联方式(在标签内直接写函数)和事件监听(使用addEventListener)。同时讲解了如何解绑事件,包括传统方式下的元素.事件类型=null和事件监听方式的removeEventListener函数。
摘要由CSDN通过智能技术生成

1.绑定事件的三种方式
<input type="button" value="按钮1">
<input type="button" value="按钮2" οnclick="alert('按钮2')">
<input type="button" value="按钮3" οnclick="fun1(),fun2()">
<input type="button" value="按钮4">
    
<script>
    /* 
        绑定事件(注册事件):
            1、传统方式:事件源.事件类型 = 事件处理函数
                 同类型事件,只能绑定一次,绑定多次只认同最后一次
                    
            2、内联方式:在标签中写上事件类型    <标签    事件类型='代码/函数名()'>
                  同类型事件,可以绑定多次      <标签    事件类型='函数名1(),函数名2()'>
                    
            3、事件监听:事件源.addEventListener('事件类型',事件处理函数)
                  注意: 该方式的事件类型不能加on
                  同类型事件,可以绑定多次
    */
    var btn1 = document.querySelectorAll('input')[0]
    // 传统方式绑定事件
    btn1.onclick = function () {
        alert('按钮1')
    }
    btn1.onclick = function () {
        alert('李三')
    }

    //  定义函数fun1
    function fun1() {
        alert('按钮3')
    }
    function fun2() {
        alert('王五')
    }

    //  获取事件源按钮4
    var btn4 = document.querySelectorAll('input')[3]
    //  事件监听 多个绑定事件
    btn4.addEventListener('click', function () {
        alert('按钮4')
    })
    btn4.addEventListener('click', function () {
        alert('赵丽')
    })
</script>


2.传统方式解绑事件
<input type="button" value="按钮1">
<input type="button" value="按钮2">

<script>
    /* 
         传统方式解绑    元素.事件类型 = null    给谁解绑元素就写谁
    */
    
    //  按钮1:点击后弹窗:你好呀      点击按钮2用于给按钮1解绑单击事件,弹出解绑成功(点击按钮1,没反应)

        var btn1 = document.querySelectorAll('input')[0]
        btn1.onclick = function(){
            alert('你好')
        }

        var btn2 = document.querySelectorAll('input')[1]
        btn2.onclick = function(){
            // 给谁解绑就写谁
            btn1.onclick = null
            alert('按钮1解绑成功')
        }

    </script>

3.事件监听方式解绑事件
<input type="button" value="按钮1">
<input type="button" value="按钮2">

<script>
    /* 
        事件监听方式解绑:
            由于事件监听可以绑定多个处理函数,解绑可以解绑其中的一个

            元素.removeEventListener('事件类型',事件处理函数名) 给谁解绑元素就写谁
            
            注意: 解绑需要使用事件函数名,所以在绑定时尽量不使用匿名函数
    */
    
    //  按钮1:点击后弹窗:你好呀      点击按钮2用于给按钮1解绑单击事件,弹出解绑成功(点击按钮1,没反应)
        var btn1 = document.querySelectorAll('input')[0]
        btn1.addEventListener('click',fun1)
        function fun1(){
            alert('你好')
        }

        //  获取按钮2  绑定单击事件
        var btn2 = document.querySelectorAll('input')[1]
        btn2.addEventListener('click',function(){
            //  按钮1解绑单击事件
            btn1.removeEventListener('click',fun1)
            alert('按钮1解绑成功')
        })


    </script>

4.事件解绑案例
 <input type="button" value="按钮1">
 <input type="button" value="按钮2">

 <script>
   /* 
     要求:
         给按钮1绑定两个单击事件;事件1:弹窗你好   事件2弹出hello
         点击按钮2,给按钮1的第一个事件解绑
         也就是说: 解绑前可以弹两个,解绑后点击按钮1只能弹hello
   */
     
     var btn1 = document.querySelectorAll('input')[0]
     var btn2 = document.querySelectorAll('input')[1]
     
     //  btn1绑定两个单击事件: 使用事件监听
     //  由于需要解绑,使用函数名   所以在绑定时不要使用匿名函数
     btn1.addEventListener('click',fun1)
     function fun1(){
         alert('你好')
     }
     btn1.addEventListener('click',fun2)
     function fun2(){
         alert('hello')
     }

     // 点击btn2
     btn2.addEventListener('click',function(){
         // 给按钮1解绑 事件1
         btn1.removeEventListener('click',fun1)
         alert('按钮1的第一个事件解绑成功')
     })
 </script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程在手天下我有

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值