zoukankan      html  css  js  c++  java
  • Js 事件详解

    1.事件流

    1.1 事件流

          描述的是在页面中接受事件的顺序

    1.2 事件冒泡

          由最具体的元素接收,然后逐级向上传播最不具体的元素的节点(文档)

    1.3 事件捕获

          最不具体的节点先接收事件,而最具体的节点应该是最后接收事件

    例如:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
            <div id="div">
                <button id="btn1">按钮</button>
            </div>
        </body>
    </html>

          事件的冒泡就是先从button再到div再到body最后到文档是逐级向上,而事件捕获就是先接受到文档然后逐级向下到button。

    2.事件处理

    2.1 HTML事件处理

          直接添加到HTML结构中

    2.2 DOM0级事件处理

          把一个函数赋值给一个事件处理程序属性

    2.3 DOM2级事件处理

          addEventListener("事件名","事件处理函数","布尔值");

          true:事件捕获

          false:事件冒泡

          removeEventListener();

    2.4 IE事件处理程序

          attachEvent

          detachEvent

    EventHanding.html

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
            <!--Html事件处理-->
            <button id="btn1" onclick="demo1()">Html事件处理</button>
            <script>
                function demo1(){
                    alert("Html事件处理");
                }
            </script>
            <br />
            
            <!--DOM0级事件处理-->
            <button id="btn2">DOM0级事件处理</button>
            <script>
                var btn2=document.getElementById("btn2");
                btn2.onclick=function(){alert("DOM0级事件处理1")};//会被覆盖
                btn2.onclick=function(){alert("DOM0级事件处理2")};//会被覆盖
                btn2.onclick=function(){alert("DOM0级事件处理3")};
                //btn2.onclick=null;
            </script>
            <br />
            
            <!--DOM2级事件处理-->
            <button id="btn3">DOM2级事件处理</button>
            <script>
            var btn3=document.getElementById("btn3");
            btn3.addEventListener("click",demo31);
            btn3.addEventListener("click",demo32);
            btn3.addEventListener("click",demo33);
            function  demo31(){
                alert("DOM2级事件处理31");
            }
            function  demo32(){
                alert("DOM2级事件处理32");
            }
            function  demo33(){
                alert("DOM2级事件处理33");
            }
            btn3.removeEventListener("click",demo31);
            </script>
            <br />
            
            <!--IE事件处理-->
            <button id="btn4">IE事件处理</button>
            <script>
            //小于等于IE8
            var btn4=document.getElementById("btn4");
            if(btn4.addEventListener){
                btn4.addEventListener("click",demo4);
            }else if(btn4.attachEvent){
                btn4.attachEvent("onclick",demo4);
            }else{
                btn4.onclick=demo4();
            }
            function demo4(){
                alert("hello");
            }
            </script>
              
        </body>
    </html>

    3.事件对象

    3.1 事件对象

          在触发DOM事件的时候都会产生一个对象

    3.2 事件对象event

          1>type:获取事件类型

          2>target:获取事件目标

          3>stopPropagation():阻止事件冒泡

          4> preventDefault():阻止事件默认行为

    EventObject.html

     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="UTF-8">
     5         <title></title>
     6     </head>
     7     <body>
     8         <div id="div">
     9             <button id="btn1">按钮</button>
    10             <a id="aid" href="EventHanding.html">跳转</a>
    11         </div>
    12         
    13         <script>
    14             document.getElementById("btn1").addEventListener("click",showtype);
    15             function showtype(event){
    16                 alert(event.type);//获得事件类型
    17                 alert(event.target);//获得事件目标
    18                 event.stopPropagation();//阻止事件冒泡
    19             }
    20             
    21             document.getElementById("div").addEventListener("click",showdiv);//事件的冒泡
    22             function showdiv(){
    23                 alert("div");
    24             }
    25             
    26             document.getElementById("aid").addEventListener("click",showA);
    27             function showA(event){
    28                 event.stopPropagation();
    29                 event.preventDefault();//阻止事件默认行为
    30             }
    31         </script>
    32     </body>
    33 </html>
  • 相关阅读:
    string
    luogu1419 寻找段落
    vijos2024 无向图最短路径
    [Tjoi2016&Heoi2016]排序
    Vijos1083 小白逛公园
    [ZJOI2007]矩阵游戏
    NOIP2015 信息传递
    [HAOI2006]受欢迎的牛
    luogu3834 【模板】可持久化线段树 1(主席树)
    luogu2625 豪华游轮
  • 原文地址:https://www.cnblogs.com/nullcodeworld/p/9308782.html
Copyright © 2011-2022 走看看