iT邦幫忙

2025 iThome 鐵人賽

DAY 13
0
Modern Web

Modern Web:從基礎、框架到前端學習系列 第 15

Day15:JavaScript 事件處理 (Event Handling) 進階

  • 分享至 

  • xImage
  •  

學習目標

  1. 了解什麼是事件 (Event)事件監聽器 (Event Listener)
  2. 學會使用addEventListener綁定多個事件。
  3. 學會事件物件 (Event Object) 的使用,例如event.target
  4. 做一個互動式小工具 (輸入文字 → 即時顯示)

理論講解

1.常見事件種類

  • 滑鼠事件clickdblclickmouseovermouseoutmousedownmouseup
  • 鍵盤事件keydownkeyupkeypress
  • 表單事件inputchangesubmit
  • 其他事件scrollresizeload

2.基本語法

element.addEventListener("事件名稱", function(event) {
  // 事件觸發後執行的程式
});

3.事件物件

document.querySelector("button").addEventListener("click", function(event) {
  console.log(event.target); // 觸發事件的元素
});

實作練習:即時輸入顯示

檔名:day15_event.html

<!DOCTYPE html>
<html lang="zh-Hant">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Day15 - 事件處理</title>
  <style>
    body {
      font-family: Arial, sans-serif;
      padding: 20px;
    }
    input {
      padding: 8px;
      width: 200px;
    }
    p {
      margin-top: 15px;
      font-size: 18px;
      color: darkblue;
    }
  </style>
</head>
<body>
  <h1>事件處理練習</h1>
  <input type="text" id="nameInput" placeholder="請輸入你的名字">
  <p id="displayText">這裡會顯示輸入的文字</p>

  <script>
    // 取得元素
    const input = document.getElementById("nameInput");
    const display = document.getElementById("displayText");

    // 綁定 input 事件
    input.addEventListener("input", function(event) {
      // event.target.value 取得輸入框的值
      display.textContent = "你好," + event.target.value + "!";
    });

    // 綁定 keydown 事件
    input.addEventListener("keydown", function(event) {
      console.log("你按下的鍵是:" + event.key);
    });
  </script>
</body>
</html>

今日作業

  1. 嘗試修改程式,讓按下 Enter 鍵時,顯示你剛剛按下 Enter!
  2. 幫輸入框新增一個背景顏色切換效果,例如在focus時變黃,blur(失去焦點)時恢復白色。

上一篇
Day14:JavaScript DOM 基礎入門
系列文
Modern Web:從基礎、框架到前端學習15
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言