鍍金池/ 問(wèn)答/HTML5  HTML/ 如何理解JS中的“事件句柄”和“事件源”這兩個(gè)概念呢?

如何理解JS中的“事件句柄”和“事件源”這兩個(gè)概念呢?

在JS開(kāi)發(fā)中,經(jīng)常聽(tīng)到“事件句柄”和“事件源”這兩個(gè)詞,但對(duì)于他們的確切意思,一直不是很了解,希望大神能點(diǎn)撥一下

回答
編輯回答
款爺

事件句柄是指事件發(fā)生時(shí)要進(jìn)行的操作。
(又稱事件處理函數(shù)),每一個(gè)事件均對(duì)應(yīng)一個(gè)事件句柄,在程序執(zhí)行時(shí),將相應(yīng)的函數(shù)或語(yǔ)句指定給事件句柄,則在該事件發(fā)生時(shí),瀏覽器便執(zhí)行指定的函數(shù)或語(yǔ)句,從而實(shí)現(xiàn)網(wǎng)頁(yè)內(nèi)容與用戶操作的交互。當(dāng)瀏覽器檢測(cè)到某事件發(fā)生時(shí),便查找該事件對(duì)應(yīng)的事件句柄有沒(méi)有被賦值,如果有,則執(zhí)行該事件句柄。
https://baike.baidu.com/item/...

事件源:

在事件中,當(dāng)前操作的那個(gè)元素就是事件源。比如網(wǎng)頁(yè)元素中a標(biāo)簽和input都有onclick事件,當(dāng)點(diǎn)擊a發(fā)生onclick事件時(shí),事件源就是a標(biāo)簽,當(dāng)點(diǎn)擊input發(fā)送onclic事件是,事件源就是input。

https://blog.csdn.net/u014205...

2017年5月28日 10:50
編輯回答
做不到

句柄是翻譯過(guò)來(lái)的,你可以直接看英文比較好理解。句柄這個(gè)詞我一開(kāi)始也很難理解

2017年4月18日 05:33
編輯回答
還吻

概念不多說(shuō)了,網(wǎng)上搜一下就有。我舉個(gè)栗子吧。

比如有一間公司,前臺(tái)是門口的王大爺,公司里有個(gè)職員小張。
有一天小張要出門辦事,碰巧他還有個(gè)快遞要收,于是他親切的跟王大爺說(shuō):“大爺啊,我出去辦點(diǎn)事,來(lái)快遞幫我收一下啊?!?/p>

這時(shí),就可以說(shuō)他在前臺(tái)王大爺(DOM對(duì)象)這里注冊(cè)了一個(gè)“收快遞”的事件句柄(handle)。

快遞來(lái)了以后,快遞員找小張,于是王大爺跟他說(shuō),“小張出去啦,我?guī)退瞻??!庇谑强爝f員將快遞交給王大爺,蹦蹦跳跳地就走了。

那么可以發(fā)現(xiàn)這其實(shí)是個(gè)代理事件,事件源,即事件句柄的第一個(gè)參數(shù)(Event對(duì)象/事件對(duì)象)下的Event.target其實(shí)是小張,但是他把這個(gè)事件托管給了大爺,所以大爺實(shí)際上是觸發(fā)事件的Event.currentTarget

當(dāng)然小張如果選擇自己親自收快遞,這就不是個(gè)代理事件了,Event.targetEvent.currentTarget就都是小張本人了。


不知道你聽(tīng)懂沒(méi)……

2017年5月23日 19:04