zoukankan      html  css  js  c++  java
  • e.target与事件委托简例

    target定义:

        target 事件属性可返回事件的目标节点(触发该事件的节点),如生成事件的元素、文档或窗口。

    语法:

        event.target

        event.target.nodeName    //获取事件触发元素标签name(li,p...)

        event.target.id       //获取事件触发元素id

        event.target.className  //获取事件触发元素classname

        event.target.innerHTML  //获取事件触发元素的内容(li)

        等。。。

    jquery:this 与 e.target区别

        this会冒泡。e.target不冒泡就是指向事件触发的dom。

    事件委托:原生js

        事件委托就是事件目标自身不处理事件,而是把处理任务委托给其父元素或者祖先元素,甚至根元素(document)。

        使用事件委托时,如果目标元素上的其他事件处理程序使用.stopPropagation()阻止了事件传播,那么事件委托就会失效。

    事件委托简单例子:

        给ul添加监听click事件,利用冒泡机制具体捕获是ul下的哪一个li触发的click事件

    HTML:

     <ul id="ul">
         <li id="li-1">1</li>
         <li id="li-2">2</li>
         <li id="li-3">3</li>
         <li id="li-4">4</li>
         <li id="li-5">5</li>
     </ul>
    

     JavaScript:

    // 给ul添加监听器
    document.getElementById("ul").addEventListener("click",function(e) {
        // e.target是被点击的元素!
        // 筛选触发事件的子元素如果是li执行的事件
        if(e.target && e.target.nodeName == "LI") {
            // 获取到具体事件触发的li,输出其id
            console.log("List item ",e.target.id.replace("post-")," was clicked!");
        }
    });
    

      

    jQuery(1.7版本起,on()代替live(),bind(),delegate()方法)的on()方法,也是事件委托

      on() 方法在被选元素及子元素上添加一个或多个事件处理程序。

      使用 on() 方法添加的事件处理程序适用于当前及未来的元素(比如由脚本创建的新元素)。

      如需移除事件处理程序,请使用 off()方法。如需添加只运行一次的事件然后移除,请使用 one() 方法

    如有错误,还请指出以便改正。

  • 相关阅读:
    Log4net详细说明
    IDEA 介绍
    在互联网中关系型数据库是否不再那么重要
    彻底删除Kafka中的topic
    kafka consumer 配置详解
    kafka常用命令
    kafka可视化客户端工具Kafka Tool
    System.InvalidOperationException:“线程间操作无效: 从不是创建控件“btnSearch”的线程访问它。
    zookeeper图形化的客户端工具
    window上安装kafka(单机)
  • 原文地址:https://www.cnblogs.com/tongxuping/p/9008126.html
Copyright © 2011-2022 走看看