target,currentTarget,delegateTarget,srcElement
2015-06-27 12:10
423 查看
第一种情况:就是IE9+和其他现代浏览器,支持addEventListener方法。其结果是:
this总是等于currentTarget
currentTarget总是事件监听者
target总是事件发起者
第二种情况:就是IE678,使用attachEvent方法注册事件。其结果是:
this总是等于window
target和currentTarget总是undefined,也就是未定义
IE专有的srcElement,含义和上面的target一致。总是等于事件发起者
第三种情况:使用jquery来绑定事件,这里是直接绑定在某个元素上面:
this总是等于currentTarget
currentTarget总是事件监听者
target总是事件发起者
还有一个delegateTarget,这里总是等于currentTarget
第四种情况:使用jquery来绑定事件,不过这里使用委托:
this总是等于currentTarget
currentTarget总是事件监听者,这里就是.btn1元素
target总是事件发起者,这里也是.btn1元素
还有一个delegateTarget,这里就是委托事件的元素,也就是.con1元素
如果是下面的代码:
那么delegateTarget还是.con1元素;currentTarget则是.con2元素;target则是.btn1元素;其中.btn1元素是.con2元素的子元素,.con2元素是.con1元素的子元素;
如果是下面的代码:
那么在jquery中是无效的,也就是不能在自己身上委托事件。
this总是等于currentTarget
currentTarget总是事件监听者
target总是事件发起者
第二种情况:就是IE678,使用attachEvent方法注册事件。其结果是:
this总是等于window
target和currentTarget总是undefined,也就是未定义
IE专有的srcElement,含义和上面的target一致。总是等于事件发起者
第三种情况:使用jquery来绑定事件,这里是直接绑定在某个元素上面:
this总是等于currentTarget
currentTarget总是事件监听者
target总是事件发起者
还有一个delegateTarget,这里总是等于currentTarget
第四种情况:使用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了!相关文章推荐
- java并发编程之Semaphore
- Objective-C 快速入门--基础(二)
- [SQL] SQL学习笔记之基础操作
- 【Hadoop】6、Hadoop安装之报错处理
- Java-对象数组排序
- AES加密解密
- java的堆和栈
- eclipse中文注释字体太小解决方法
- c++字符串与字符等类型互相转换
- 对map的值进行排序
- PowerShell脚本反引号用法实例:随时随地给代码换行
- perl system,exec,readpipe 函数
- 用74HC165读8个按键状态(转)
- 2015062703 - 郭子仪
- zergRush (CVE-2011-3874) 提权漏洞分析
- CodeForces 550E Brackets in Implications(构造)
- Java深入浅出系列(四)——深入剖析动态代理--从静态代理到动态代理的演化
- C++POST提交数据
- 链表
- strcat strcpy 使用出现的问题汇总