DOM中事件绑定的三种形式

在DOM中,事件绑定有三种形式:
1)html级别的事件绑定 把事件当成了标签的属性
<button onclick="alert('hello')">点击</button> <button onclick="fn()">点击</button>
为什么上面的 οnclick=“fn()”?
因为它内部会在外面包一层函数,如下:

 onclick = function(){
        fn();
    }

2)dom0级别的事件绑定
eye.onclick = function(){}
就是给onclick属性赋值
只能给相同的事件赋一个值,如果再赋值的话,后面的就会覆盖前面的值。
问DOM0级别事件绑定的原理:给属性赋值
3)dom2级别的事件绑定 推荐使用它
eye.addEventListener("click",function () {})
基于事件池机制,可以给事件源绑定多个相同的事件

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .box {
            position: relative;
            width: 400px;
            border-bottom: 1px solid #ccc;
            margin: 100px auto;
        }

        .box input {
            width: 370px;
            height: 30px;
            border: 0;
            outline: none;
        }

        .box img {
            position: absolute;
            top: 2px;
            right: 2px;
            width: 24px;
        }
    </style>
</head>
<body>
    <div class="box">
        <img src="./images/close.png" id="eye" alt="">
        <input type="password" id="pwd">
        <!-- html级别的事件绑定-->
        <!-- <button οnclick="alert('hello')">点击</button>-->
    </div>
    <script>
        var eye = document.getElementById("eye");
        var pwd = document.getElementById("pwd");
        // eye.onclick = function(){} // dom0级别的事件绑定

        // let flag = true;
        let flag = 1;

        eye.addEventListener("click",function () {  // dom2级别的事件绑定
            if(flag){
                eye.src = "./images/open.png"
                pwd.type = "text"
                // flag = false;
                flag = 0;
            }else{
                eye.src = "./images/close.png"
                pwd.type = "password"
                // flag = true;
                flag = 1;
            }
        })
    </script>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值