zoukankan      html  css  js  c++  java
  • target,currentTarget,delegateTarget,srcElement

    1. 第一种情况:就是IE9+和其他现代浏览器,支持addEventListener方法。其结果是:

      • this总是等于currentTarget
      • currentTarget总是事件监听者
      • target总是事件发起者
    2. 第二种情况:就是IE678,使用attachEvent方法注册事件。其结果是:

      • this总是等于window
      • target和currentTarget总是undefined,也就是未定义
      • IE专有的srcElement,含义和上面的target一致。总是等于事件发起者
    3. 第三种情况:使用jquery来绑定事件,这里是直接绑定在某个元素上面:

      • this总是等于currentTarget
      • currentTarget总是事件监听者
      • target总是事件发起者
      • 还有一个delegateTarget,这里总是等于currentTarget
    4. 第四种情况:使用jquery来绑定事件,不过这里使用委托:

      $(".con1").on("click", ".btn1", sayClassName);
      
      • this总是等于currentTarget
      • currentTarget总是事件监听者,这里就是.btn1元素
      • target总是事件发起者,这里也是.btn1元素
      • 还有一个delegateTarget,这里就是委托事件的元素,也就是.con1元素

      如果是下面的代码:

      $(".con1").on("click", ".con2", sayClassName);  
      

      那么delegateTarget还是.con1元素;currentTarget则是.con2元素;target则是.btn1元素;其中.btn1元素是.con2元素的子元素,.con2元素是.con1元素的子元素;

      如果是下面的代码:

      $(".btn1").on("click", ".btn1", sayClassName);
      

      那么在jquery中是无效的,也就是不能在自己身上委托事件。

    总结

    总结就是我们只需要关注currentTarget就OK了!

  • 相关阅读:
    python3.6下安装wingIDE破解方法
    Python 列表list 和 字符串str 互转
    c# 读取txt文件并分隔
    基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系
    Jquery ajax动态更新下拉列表的内容
    vs2015使用技巧-------- 查看类关系图
    Dapper 批量操作sql
    Linq批量建表
    WebRequest的get及post提交
    git -- 常用命令
  • 原文地址:https://www.cnblogs.com/3tree/p/4603895.html
Copyright © 2011-2022 走看看