Event 对象
1. 事件對象
Event 對象代表事件的狀態(tài),比如事件在其中發(fā)生的元素、鍵盤按鍵的狀態(tài)、鼠標(biāo)的位置、鼠標(biāo)按鈕的狀態(tài)。
- 什么時候會產(chǎn)生Event 對象呢??
- 例如: 當(dāng)用戶單擊某個元素的時候,我們給這個元素注冊的事件就會觸發(fā),該事件的本質(zhì)就是一個函數(shù),而該函數(shù)的形參接收一個event對象.
- 事件通常與函數(shù)結(jié)合使用,函數(shù)不會在事件發(fā)生前被執(zhí)行!
?
?
target 事件屬性可返回事件的目標(biāo)節(jié)點(觸發(fā)該事件的節(jié)點),如生成事件的元素、文檔或窗口。
語法
event.target2. 事件流
2.1 事件流發(fā)展史
- 事件發(fā)展史,這位大神已經(jīng)寫好了,想去偷瞄兩眼的請點擊這里
2.2 冒泡
?
- 什么是事件冒泡,?
- 官方的定義就是從最特定的事件目標(biāo)到最不特定的事件目標(biāo)
?
意思就是說,假如用戶單擊了一個元素,該元素擁有一個click事件,那么同樣的事件也將會被它的祖先觸發(fā),這個事件從該元素開始一直冒泡到DOM樹的最上層,這一過程稱為事件冒泡
2.3 捕獲
?
- 什么是事件捕獲
?
事件捕獲和事件是相反的,也就是說,當(dāng)用戶觸發(fā)了一個事件的時候,這個事件是從DOM樹的最上層開始觸發(fā)一直到捕獲到事件源.
2.4 事件流
?
- 它的由來
?
由于微軟和網(wǎng)景亂搞,后來必須要為事件傳播機制,制定一個標(biāo)準(zhǔn),因為事件捕獲是網(wǎng)景公司開發(fā)出來的,而事件冒泡是由微軟公司開發(fā)出來的,它們都想要自己的技術(shù)成為標(biāo)準(zhǔn),所以導(dǎo)致這兩個公司老是干架,制定標(biāo)準(zhǔn)的人為了不讓它們干架,所以研發(fā)了事件流.
2.5 事件流的寫法以及實現(xiàn)方式
- 標(biāo)準(zhǔn)實現(xiàn)方式使用關(guān)鍵詞addEventListener,假如你想要給某一個元素添加事件,現(xiàn)在就可以這樣寫element.addEventListener(eventType, fn, false)?
- dom對象.addEventListener(事件類型, 回調(diào)函數(shù), 事件機制)這里的事件類型表示你要使用哪種事件類型比如click, 回調(diào)函數(shù)里面寫著觸發(fā)此事件你要做什么事情, 事件機制分為冒泡和捕獲,如果為false表示事件冒泡,為true表示事件捕獲
- 既然有標(biāo)準(zhǔn)的實現(xiàn)方式,那么肯定也存在著不和諧的寫法,沒辦法誰讓人家牛逼呢,俗話說的好啊兩虎之爭必有一傷,可傷了我們程序員了.這種不和諧的寫法是?
- dom對象.attachEvent(eventType, fn)第一個參數(shù)表示事件類型,第二個是回調(diào).這種寫法兼容IE, IE沒有實現(xiàn)事件捕獲,因為在當(dāng)時他比較厲害,以為沒必要…………只是,,,,省略一千字, 現(xiàn)在微軟的瀏覽器已經(jīng)做得很好了… 只是調(diào)侃一下無其他意圖..
- 以上的兩種寫法一種是兼容W3C標(biāo)準(zhǔn)的一種是老版IE的寫法
轉(zhuǎn)載于:https://www.cnblogs.com/szl6/p/9965378.html
總結(jié)
- 上一篇: sqlserver中创建链接服务器图解教
- 下一篇: 练习二十一:关于猴子吃桃的问题