zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    HTTP的OPTIONS请求方法
    K8s -- DaemonSet
    Nginx 变量漫谈(二)
    Nginx 变量漫谈(一)
    通俗地讲,Netty 能做什么?
    CSP AFO后可以公开的情报
    AT1219 歴史の研究
    LuoguP4165 [SCOI2007]组队
    CF708C Centroids(树形DP)
    CF208E Blood Cousins(DSU,倍增)
  • 原文地址:https://www.cnblogs.com/feile/p/5449640.html
Copyright © 2011-2022 走看看