• JS—事件


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

    &事件冒泡:由最具体的元素接收,然后逐级向上传播至最不具体的元素的节点(文档)

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

    ***********************

    HTML事件处理:
      直接添加到HTML结构中

        <button id="btn" onclick="demo()">按钮</button>
        <script>
            function demo() {//函数名一旦改变,则需要改动两处
                alert("html事件处理");
            }
        </script>

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

        <button id="btn">按钮</button>
        <script>
            var btn = document.getElementById("btn");
            btn.onclick = function() {
                alert("DOM0级事件处理");
            }
            btn.onclick = function() {
                alert("原事件被覆盖了!!");
                //DOM0级事件处理的缺点:存在多个事件,则最后一个事件会覆盖之前的事件
            }
            //btn.onclick=null;//清除事件
        </script>

    DOM2级事件处理:
      addEventListener("事件名",“事件处理函数”,"布尔值");
      true:事件捕获
      false:事件冒泡
      removeEventListener();

        <button id="btn">按钮</button>
        <script>
            /* document.getElementById("btn").addEventListener("click", function() {
                alert("DOM2级事件处理程序");
            });
            document.getElementById("btn").addEventListener("click", demo);
            function demo() {
                alert("DOM2级事件处理程序");
            } */
            document.getElementById("btn").addEventListener("click", demo);
            function demo() {
                alert("DOM2级事件处理程序");
            }
            document.getElementById("btn").addEventListener("click", demo1);
            function demo1() {
                alert("DOM2级事件处理程序1");//优点:事件不会被覆盖~
            }    
        </script>

    @@@一个小的恶作剧:

        <button id="btn">按钮</button>
        <script>
            document.getElementById("btn").addEventListener("click", demo);
            function demo() {
                for ( var i = 0; i < 10000; i++) {
                    alert("DOM2级事件处理程序");
                }
            }
        </script>

    IE事件处理程序:
      attachEvent【相当于addEventListener】
      detachEvent【相当于removeEventListener】

    兼容性处理有关:

        <button id="btn">按钮</button>
        <script>
            var btn = document.getElementById("btn");
            if (btn.addEventListener) {
                btn.addEventListener("click", demo);
            } else if (btn.attachEvent) {
                btn.attachEvent("onclick", demo);
            } else {
                btn.onclick = demo();
            }
            function demo() {
                alert("hello");
            }
        </script>
  • 相关阅读:
    Java的基本数据类型及其封装类
    牛客寒假3-A |dp走格子
    牛客寒假1-I nico和niconiconi| 字符串 线性dp
    牛客寒假2-C算概率| 概率dp
    牛客寒假6-B重排列| dp计数
    牛客寒假6-B图| 统计环中结点个数,计算最大链长
    三分法 求最大值最小|牛客寒假5-B牛牛战队的比赛地
    P3382|三分法模板
    思维题(取模)| CF#615Div3 D.MEX maximizing
    树的直径| CF#615Div3 F. Three Paths on a Tree
  • 原文地址:https://www.cnblogs.com/feile/p/5449640.html
Copyright © 2020-2023  润新知