您的位置:首页 > 其它

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来绑定事件,不过这里使用委托:

$(".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了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: