
- Javascript 基礎教程
- Javascript - 首頁
- JavaScript - 路線圖
- JavaScript - 概述
- JavaScript - 特性
- JavaScript - 啟用
- JavaScript - 位置
- JavaScript - 語法
- JavaScript - Hello World
- JavaScript - Console.log()
- JavaScript - 註釋
- JavaScript - 變數
- JavaScript - let 語句
- JavaScript - 常量
- JavaScript - 資料型別
- JavaScript - 型別轉換
- JavaScript - 嚴格模式
- JavaScript - 保留關鍵字
- JavaScript 運算子
- JavaScript - 運算子
- JavaScript - 算術運算子
- JavaScript - 比較運算子
- JavaScript - 邏輯運算子
- JavaScript - 位運算子
- JavaScript - 賦值運算子
- JavaScript - 條件運算子
- JavaScript - typeof 運算子
- JavaScript - 空值合併運算子
- JavaScript - delete 運算子
- JavaScript - 逗號運算子
- JavaScript - 分組運算子
- JavaScript - yield 運算子
- JavaScript - 展開運算子
- JavaScript - 指數運算子
- JavaScript - 運算子優先順序
- JavaScript 控制流
- JavaScript - if...else
- JavaScript - while 迴圈
- JavaScript - for 迴圈
- JavaScript - for...in
- Javascript - for...of
- JavaScript - 迴圈控制
- JavaScript - break 語句
- JavaScript - continue 語句
- JavaScript - switch case
- JavaScript - 使用者自定義迭代器
- JavaScript 函式
- JavaScript - 函式
- JavaScript - 函式表示式
- JavaScript - 函式引數
- JavaScript - 預設引數
- JavaScript - Function() 建構函式
- JavaScript - 函式提升
- JavaScript - 自執行函式
- JavaScript - 箭頭函式
- JavaScript - 函式呼叫
- JavaScript - Function call()
- JavaScript - Function apply()
- JavaScript - Function bind()
- JavaScript - 閉包
- JavaScript - 變數作用域
- JavaScript - 全域性變數
- JavaScript - 智慧函式引數
- JavaScript 物件
- JavaScript - Number
- JavaScript - Boolean
- JavaScript - String
- JavaScript - Array
- JavaScript - Date
- JavaScript - DataView
- JavaScript - Handler
- JavaScript - Math
- JavaScript - RegExp
- JavaScript - Symbol
- JavaScript - Set
- JavaScript - WeakSet
- JavaScript - Map
- JavaScript - WeakMap
- JavaScript - Iterable
- JavaScript - Reflect
- JavaScript - TypedArray
- JavaScript - 模板字面量
- JavaScript - 標籤模板
- 面向物件的 JavaScript
- JavaScript - 物件
- JavaScript - 類
- JavaScript - 物件屬性
- JavaScript - 物件方法
- JavaScript - 靜態方法
- JavaScript - 顯示物件
- JavaScript - 物件訪問器
- JavaScript - 物件建構函式
- JavaScript - 原生原型
- JavaScript - ES5 物件方法
- JavaScript - 封裝
- JavaScript - 繼承
- JavaScript - 抽象
- JavaScript - 多型
- JavaScript - 解構賦值
- JavaScript - 物件解構
- JavaScript - 陣列解構
- JavaScript - 巢狀解構
- JavaScript - 可選鏈
- JavaScript - 全域性物件
- JavaScript - Mixins
- JavaScript - 代理 (Proxies)
- JavaScript 版本
- JavaScript - 歷史
- JavaScript - 版本
- JavaScript - ES5
- JavaScript - ES6
- ECMAScript 2016
- ECMAScript 2017
- ECMAScript 2018
- ECMAScript 2019
- ECMAScript 2020
- ECMAScript 2021
- ECMAScript 2022
- JavaScript 非同步程式設計
- JavaScript - 非同步程式設計
- JavaScript - 回撥函式
- JavaScript - Promise
- JavaScript - Async/Await
- JavaScript - 微任務
- JavaScript - Promise 化
- JavaScript - Promise 鏈式呼叫
- JavaScript - 定時事件
- JavaScript - setTimeout()
- JavaScript - setInterval()
- JavaScript Cookie
- JavaScript - Cookie
- JavaScript - Cookie 屬性
- JavaScript - 刪除 Cookie
- JavaScript 瀏覽器 BOM
- JavaScript - 瀏覽器物件模型
- JavaScript - Window 物件
- JavaScript - Document 物件
- JavaScript - Screen 物件
- JavaScript - History 物件
- JavaScript - Navigator 物件
- JavaScript - Location 物件
- JavaScript - Console 物件
- JavaScript Web APIs
- JavaScript - Web API
- JavaScript - History API
- JavaScript - Storage API
- JavaScript - Forms API
- JavaScript - Worker API
- JavaScript - Fetch API
- JavaScript - Geolocation API
- JavaScript 事件
- JavaScript - 事件
- JavaScript - DOM 事件
- JavaScript - addEventListener()
- JavaScript - 滑鼠事件
- JavaScript - 鍵盤事件
- JavaScript - 表單事件
- JavaScript - 視窗/文件事件
- JavaScript - 事件委託
- JavaScript - 事件冒泡
- JavaScript - 事件捕獲
- JavaScript - 自定義事件
- JavaScript 錯誤處理
- JavaScript - 錯誤處理
- JavaScript - try...catch
- JavaScript - 除錯
- JavaScript - 自定義錯誤
- JavaScript - 擴充套件錯誤
- JavaScript 重要關鍵字
- JavaScript - this 關鍵字
- JavaScript - void 關鍵字
- JavaScript - new 關鍵字
- JavaScript - var 關鍵字
- JavaScript HTML DOM
- JavaScript - HTML DOM
- JavaScript - DOM 方法和屬性
- JavaScript - DOM Document
- JavaScript - DOM 元素
- JavaScript - DOM 屬性 (Attr)
- JavaScript - DOM 表單
- JavaScript - 修改 HTML
- JavaScript - 修改 CSS
- JavaScript - DOM 動畫
- JavaScript - DOM 導航
- JavaScript - DOM 集合
- JavaScript - DOM NodeList
- JavaScript - DOM DOMTokenList
- JavaScript 其他
- JavaScript - Ajax
- JavaScript - 非同步迭代
- JavaScript - Atomics 物件
- JavaScript - rest 引數
- JavaScript - 頁面重定向
- JavaScript - 對話方塊
- JavaScript - 頁面列印
- JavaScript - 驗證
- JavaScript - 動畫
- JavaScript - 多媒體
- JavaScript - 圖片地圖
- JavaScript - 瀏覽器
- JavaScript - JSON
- JavaScript - 多行字串
- JavaScript - 日期格式
- JavaScript - 獲取日期的方法
- JavaScript - 設定日期的方法
- JavaScript - 模組
- JavaScript - 動態匯入
- JavaScript - BigInt
- JavaScript - Blob
- JavaScript - Unicode
- JavaScript - 淺複製
- JavaScript - 呼叫棧
- JavaScript - 引用型別
- JavaScript - IndexedDB
- JavaScript - 點選劫持攻擊
- JavaScript - 柯里化
- JavaScript - 圖形
- JavaScript - Canvas
- JavaScript - 防抖
- JavaScript - 效能
- JavaScript - 樣式指南
JavaScript - addEventListener()
JavaScript 的 addEventListener() 方法用於將事件處理程式函式附加到 HTML 元素。這允許您指定一個函式,當指定元素上發生特定事件時將執行該函式。
事件是特定事件或動作,例如使用者點選、按鍵或頁面載入。瀏覽器檢測這些事件並觸發相關的 JavaScript 函式(稱為事件處理程式)以相應地做出響應。
開發者使用 'addEventListener()' 方法將特定的 HTML 元素與特定函式行為關聯起來,當這些事件發生時。事件的示例包括點選、滑鼠移動、鍵盤輸入和文件載入。
語法
addEventListener() 的基本語法如下:
element.addEventListener(event, function, options);
這裡 element 是一個 HTML 元素,例如按鈕、輸入或 div - 可以使用諸如 getElementById、getElementsByClassName、getElementsByTagName 和 querySelector 等方法進行選擇;這些只是一些示例。事件監聽器附加到此特定元素。
引數
addEventListener() 方法接受以下引數:
event - 一個表示動作型別的字串 - 例如,“click”、“mouseover”或“keydown”等等;將作為我們執行給定函式的觸發器。
function - 當指定的事件發生時呼叫的命名、匿名或對現有函式的引用;它本質上是在預定時間點促進執行的操作。
options (可選) - 它允許指定其他設定,特別是與事件監聽器相關的捕獲或 once 行為。
示例
示例:點選按鈕時發出警報
在這個例子中,我們將顯示一個簡單的按鈕,點選時會在螢幕上顯示一個警報。addEventListener 將負責處理“click”事件,這意味著它將在點選按鈕時呼叫一個函式 handleClick,該函式會在螢幕上顯示一個警報。我們使用 getElementById 獲取我們要繫結事件監聽器的按鈕。
這是在表單提交、登入、註冊等方面常用的事件。
<html> <head> <title>Click Event Example</title> </head> <body> <p> Click the button below to perform an event </p> <button id="myButton">Click Me</button> <script> // Get the button element const button = document.getElementById("myButton"); // Define the event handler function function handleClick() { alert("Button clicked!"); } // Attach the event listener to the button button.addEventListener("click", handleClick); </script> </body> </html>
示例:滑鼠懸停時更改顏色
在這個例子中,我們有一個 div 標籤,它最初的顏色為淺藍色。將滑鼠懸停在這個 div 標籤上時,它將變為紅色,如果我們移出滑鼠,它將變回藍色。
在這種情況下有兩個事件,mouseover 和 mouseout。mouseover 表示滑鼠移動到元素上,mouseout 表示滑鼠移出元素。
這裡有兩個函式,一個用於 mouseover,一個用於 mouseout。在 mouseover 時,背景顏色屬性設定為 lightcoral(一種紅色),在 mouseout 時,背景顏色設定為淺藍色。
在許多網站的導航欄上懸停滑鼠時,經常可以看到這類滑鼠懸停事件。
<html> <head> <title>Mouseover Event Example</title> <style> #myDiv { width: 600px; height: 200px; background-color: lightblue; } </style> </head> <body> <div id="myDiv">Hover over me</div> <script> // Get the div element const myDiv = document.getElementById("myDiv"); // Define the event handler function function handleMouseover() { myDiv.style.backgroundColor = "lightcoral"; } // Attach the event listener to the div myDiv.addEventListener("mouseover", handleMouseover); // Additional example: Change color back on mouseout function handleMouseout() { myDiv.style.backgroundColor = "lightblue"; } myDiv.addEventListener("mouseout", handleMouseout); </script> </body> </html>
同一個元素可以有多個事件監聽器,例如第二個示例,它有兩個事件監聽器(用於 mouseover 和 mouseout)。可以使用 removeEventListener 函式移除事件監聽器。透過在 options 中傳遞 once: true 引數,我們可以確保事件監聽器在呼叫一次後被移除,這在某些情況下(如支付)非常重要。
需要注意的是,不應該使用“on”字首來指定事件,這意味著對於 click 事件,我們應該將其指定為“click”,而不是“onclick”。