iT邦幫忙

2024 iThome 鐵人賽

DAY 9
0
佛心分享-IT 人自學之術

JavaScript自學分享系列 第 10

Day10——JavaScript Event Handling 事件處理、Event bubbling

  • 分享至 

  • xImage
  •  

大家好~我是姐姐恩!身為資訊小白的我,起初對於參賽主題非常苦惱,最後決定利用此次機會,延續學校的課(Java),了解網頁前端三劍客之一的JavaScript!
所以接下來30天,我將在這裡紀錄我當天的學習筆記及統整後的學習內容,請大家多多指教!
*學習內容主要取自MDN Web Docs及彭彭老師的YT課程。

Day10——JavaScript Event Handling 事件處理、Event bubbling

事件:只網頁上一件事情的發生,如click點擊、mouseover滑鼠移入、mouseout滑鼠移出、mousedown滑鼠按下等等。

事件處理的三個關鍵:在哪個標籤上發生事件、事件的種類為何、事件對應的處理函式。

  • 註冊事件的處理函式(事件對應的處理函式):在某個標籤上,將函式與事件作對應。
  • 一個標籤可以搭配多個事件。
//基本語法
<div 事件名稱="程式碼"> 標籤內文 </div>
<button 事件名稱="程式碼"> 標籤內文 </button> 

跟著影片練習:

  • onclick="空白":點擊才切換。
<!DOCTYPE html>
<html>
    <head>
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta charset="utf-8" />
        <title>JavaScript : 事件處理</title>
        <style>
            .btn{
                background-color: #ffcccc;
                padding:5px;border-radius: 5px;
                cursor: pointer;
            }
        </style>
    </head>
    <body>
        <h3>事件處理練習</h3>
        <!-- <button onclick="console.log('點擊事件');" 
        onmouseover="console.log('滑鼠移入');"
        onmouseout="console.log('滑鼠移出');"
        onmousedown="console.log('滑鼠按住');"
        onmouseup="console.log('滑鼠放開');"
        > 點我 </button>   -->
        <span 
            class="btn"
            onmouseover="over(this);"
            onmouseout="out(this);"
            onmousedown="down(this);"
            onmouseup="up(this);"
        >按鈕一</span>
        <span 
            class="btn"
            onmouseover="over(this);"
            onmouseout="out(this);"
            onmousedown="down(this);"
            onmouseup="up(this);"
        >按鈕二</span>

        <script>
            function over(elem){
                elem.style.backgroundColor="#ddaaaa";
            }
            function out(elem){
                elem.style.backgroundColor="#ffcccc";
            }
            function down(elem){
                elem.style.fontWeight="bold";
            }
            function up(elem){
                elem.style.fontWeight="normal";
            }
        </script>
    </body>
</html>

印出:
(將滑鼠放至按鈕上)
https://ithelp.ithome.com.tw/upload/images/20240926/20169022UhaPPg7H8p.pnghttps://ithelp.ithome.com.tw/upload/images/20240926/20169022dokN19eEqC.png
(點擊的當下)
https://ithelp.ithome.com.tw/upload/images/20240926/201690227l9RR2dfq3.pnghttps://ithelp.ithome.com.tw/upload/images/20240926/201690229n6TP3s15R.png

Event Bubbling

指的是當Event Handling執行事件處理函式時,決定事件處理的順序,是從DOM root得根節點往下傳播至目標節點去處理事件,而事件處理完成後,會在像泡泡一樣,沿途向上飄回根節點,其中在向下傳遞的過程,則稱為Event Capture階段。

學習資源:
事件處理:如何在網頁中加入互動
Event bubbling
JavaScript Event Handling 事件處理 - Front End 網頁前端工程教學
[教學] 瀏覽器事件:Event Bubbling, Event Capturing 及 Event Delegation
Yes


上一篇
Day09——JavaScript HTML DOM 網頁畫面操作演練
下一篇
Day11——HTTP 通訊協定簡介 、AJAX /XHR網路連線實務
系列文
JavaScript自學分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言