zoukankan      html  css  js  c++  java
  • 事件委托

     

    1. 在介绍事件委托前,首先要了解DOM的事件流

      DOM事件流分为三个阶段 : 事件捕获,处于目标阶段,事件冒泡

      事件捕获:从根节点开始捕获事件,一级一级向下,逐渐捕获至目标节点

      事件冒泡 : 从目标节点开始捕获事件,一级一级向上,逐渐冒泡只根节点

        <!DOCTYPE html>
        <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>Title</title></head>
        <body>
            <p id="p1">
                <b id="b1">Hello</b>
                <b id="b2">World</b>
            </p>
        </body> 
        </html>

      由上述html页面得,若点击id为b1的b标签,则过程如图 :

        

    1. 事件委托涉及相关概念

      event对象

      在兼容DOM的浏览器中,在事件处理的过程中,都会传入一个event对象,可以通过target属性获取目标事件

    2. 事件委托

      那么,有这个概念,就可以进行事件委托

      事件委托可以通过父元素设置子元素的监听事件

      在父元素处对子元素设置监听事件,然后通过event对象中的target属性对目标元素进行统一设置监听,可以高度抽象

      由上述例子 :

            var p = document.getElementById("p1");
            p1.addEventListener("click",function (event) {
                alert(event.target.innerHTML);
            },false);   //false 设置为在冒泡阶段 ; true 为捕获阶段

      我们按以往是通过获取父标签后对子元素的标签遍历添加监听属性,但是通过事件委托,可以在父元素处统一设置监听。

  • 相关阅读:
    BeforeFieldInit解析(zz)
    自定义控件
    How to make Office VBA code interact with a VSTO applicationlevel addin
    总结
    IL汇编语言程序设计目录
    zz如何精简用户界面
    volatile关键字的作用(zz)
    外企面试基本涵盖了所有问题(拿得别人的,很有用)
    Excel 2007 There was a problem sending the command to the program
    数据库技巧
  • 原文地址:https://www.cnblogs.com/qingzhengxiangmingyue/p/8690020.html
Copyright © 2011-2022 走看看