DOM事件类

1.DOM事件的级别

事件级别   DOM标准定义的级别

DOM0      elem.onclick = function(){}

DOM1  没有事件级别的制定

DOM2   elem.addEventListener("click",function(){},false)

IE中,elem.attachEvent("onclick",function(){})

DOM3   elem.addEventListener("keyup",function(){},false)

增加了很多鼠标事件和键盘事件

2.DOM事件模型

有冒泡和捕获

3.DOM事件流

事件流是指浏览器在为当前页面与用户交互中是如何操作的,如点击了左键,这个左键是怎么传递到页面上的,是怎么响应的

一个完整的事件流包含三个阶段:事件捕获、目标阶段、事件冒泡

1.DOM事件捕获的具体流程

window---->document---->document.documentElement---->document.body---->......---->目标元素

2.DOM事件冒泡的具体流程

目标元素---->......------>document.body---->document.documentElement----->document------>window

3.Event对象的常见应用

event.preventDefault();阻止事件的默认行为

event.stopPropagation();阻止事件的冒泡

event.stopImmediatePropagation();如果给一个元素依次绑定了click事件的A,B处理函数,想执行第一个处理函数A,而不执行B,则可以使用该属性

event.currentTarget;当前所绑定事件的元素

event.target;触发当前事件的元素

4.事件代理:把子元素的事件都转移到父级元素上,绑定一次事件就可以了

在父级元素中可以使用event.target拿到触发当前事件的元素;event.currentTarget拿到父级元素

4.自定义事件

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>自定义事件</title>
    <style>
        html * {
            margin: 0;
            padding: 0;
        }
    </style>
</head>
<body>
    <section id="wrap>
        <p></p>
    </section>
    <script>
        //定义一个事件custom
        const eve = new Event("custom");
        //const eve = new CustomEvent("custom",{message:"hello custom."});
        
        const wrap = document.getElementById("wrap");

        //给wrap绑定custom自定义事件
        wrap.addEventListener("custom",function(){
                console.log("自定义事件custom...")
        },false);
        /*
            wrap.addEventListener("custom",{message},function(e){
                   console.log(message);
            })
        */
        
        //触发自定义事件
        wrap.dispatchEvent(eve);

        
    </script>
</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值