在JS开发中,经常听到“事件句柄”和“事件源”这两个词,但对于他们的确切意思,一直不是很了解,希望大神能点拨一下
概念不多说了,网上搜一下就有。我举个栗子吧。
比如有一间公司,前台是门口的王大爷,公司里有个职员小张。
有一天小张要出门办事,碰巧他还有个快递要收,于是他亲切的跟王大爷说:“大爷啊,我出去办点事,来快递帮我收一下啊。”
这时,就可以说他在前台王大爷(DOM对象)这里注册了一个“收快递”的事件句柄(handle)。
快递来了以后,快递员找小张,于是王大爷跟他说,“小张出去啦,我帮他收吧。”于是快递员将快递交给王大爷,蹦蹦跳跳地就走了。
那么可以发现这其实是个代理事件,事件源,即事件句柄的第一个参数(Event对象/事件对象)下的Event.target
其实是小张,但是他把这个事件托管给了大爷,所以大爷实际上是触发事件的Event.currentTarget
当然小张如果选择自己亲自收快递,这就不是个代理事件了,Event.target
和Event.currentTarget
就都是小张本人了。
不知道你听懂没……
13 回答12.7k 阅读
7 回答1.8k 阅读
5 回答1.3k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
5 回答917 阅读✓ 已解决
6 回答768 阅读✓ 已解决
事件句柄是指事件发生时要进行的操作。
(又称事件处理函数),每一个事件均对应一个事件句柄,在程序执行时,将相应的函数或语句指定给事件句柄,则在该事件发生时,浏览器便执行指定的函数或语句,从而实现网页内容与用户操作的交互。当浏览器检测到某事件发生时,便查找该事件对应的事件句柄有没有被赋值,如果有,则执行该事件句柄。
https://baike.baidu.com/item/...
事件源:
在事件中,当前操作的那个元素就是事件源。比如网页元素中a标签和input都有onclick事件,当点击a发生onclick事件时,事件源就是a标签,当点击input发送onclic事件是,事件源就是input。
https://blog.csdn.net/u014205...