iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 12
0

在介紹監聽(addEventListener)的時候
我們並沒有介紹第3個參數它的用途與涵義

所以今天一開始我們要來介紹
Event Bubbling、Event Capturing 差異
也就是當第3個參數
他為true與false分別代表什麼

false : Event Bubbling(事件氣泡)
因為它就像因為就像氣泡,一層一層往上擴散

例子:
https://ithelp.ithome.com.tw/upload/images/20200927/201230396ImwOvsa5u.jpg

CodePen : https://codepen.io/wemyferb/pen/NWNJJWj

所以會先跳box 再跳 body

true: Event Capturing(事件捕捉)
因為它就像一大片草原上尋找指定的獵物

例子:
https://ithelp.ithome.com.tw/upload/images/20200927/20123039wwtmvIhIvS.jpg

CodePen :https://codepen.io/wemyferb/pen/VwaRRYw

所以會先跳body 再跳 box


中止冒泡事件 (stopPropagation)
https://ithelp.ithome.com.tw/upload/images/20200927/20123039MB5vhFwGTF.jpg

CodePen :https://codepen.io/wemyferb/pen/XWdGGXy
加上 e.stopPropagation();
就不會再往外層尋找


取消預設觸發行為 (preventDefault )
preventDefault: 取消元素默認行為

這裡先舉一個還未設preventDefault的例子
CodePen :https://codepen.io/wemyferb/pen/LYNaaLY
會發現按了連結
會跑到最上面

這時候加上preventDefault
會發現
不會跑道最上面了
是不是非常神奇!!!/images/emoticon/emoticon07.gif
CodePen : https://codepen.io/wemyferb/pen/zYqbbjV


了解目前所在元素位置 (e.target)
https://ithelp.ithome.com.tw/upload/images/20200927/20123039VPDSqNoh6p.jpg

CodePen: https://codepen.io/wemyferb/pen/dyMrrgX

會發現e.target裡面還有一個 nodeName
CodePen : https://codepen.io/wemyferb/pen/jOqJJev


表單內容更動內容時觸發 (change)

這裡我們利用 change事件 搭配 createElement
CodePen :https://codepen.io/wemyferb/pen/RwadzvV?editors=1010


keyCode
利用keyCode事件來控制 上下左右
CodePen :https://codepen.io/wemyferb/pen/VwaRoLb

今天的介紹就到這裡
明天我們會介紹事件的第3部分
要記得持續關注唷!!!
/images/emoticon/emoticon07.gif


上一篇
事件基礎介紹 DAY11
下一篇
事件基礎介紹(3) DAY13
系列文
JavaScript基礎30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言