狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

JavaScript 21天入門:事件處理(Events)

admin
2024年10月22日 21:57 本文熱度 803

簡單來說,事件就是用戶或瀏覽器執行的某些動作,比如說點擊按鈕、移動鼠標、按下鍵盤等等。

通過捕獲事件之后處理事件,可以讓網頁對這些動作做出響應,進而實現更豐富的交互效果。

事件的類型

JavaScript 中事件的類型非常多,比較常用且典型的有以下幾種:

  • 鼠標事件類:如 click(點擊)、dblclick(雙擊)、mouseover(鼠標移入)、mouseout(鼠標移出)等。

  • 鍵盤事件類:如 keydown(按下鍵)、keyup(釋放鍵)等。

  • 表單事件類:如 submit(提交表單)、change(表單元素值改變)等。

  • 窗口事件類:如 load(頁面加載完成)、resize(窗口大小改變)等。

事件監聽

不用擔心事件太多,因為所有事件的處理都可以通過 addEventListener 方法來添加事件監聽器。

這個方法有三個參數:事件類型、事件處理函數和一個布爾值(表示是否在捕獲階段處理事件)。

// 添加事件監聽器 document.getElementById('myButton').addEventListener(   'click',   function (event) {     alert('按鈕被點擊了!');   },   false ); 

在上面的代碼中,我們給一個按鈕添加了 click 事件的監聽器。

當按鈕被點擊時,會彈出一個提示框。

第三個參數 false 表示在事件冒泡階段處理事件。

事件冒泡

事件冒泡指的是當一個事件發生在某個元素上時,這個事件會從最內層的目標元素開始,一層一層向上傳遞,直到最外層的元素。

這個過程就像水泡從水底冒到水面一樣,因此被稱為“事件冒泡”。

假設有一個嵌套的 HTML 結構,如下所示:

<div id="outer">   <div id="inner">     <button id="myButton">點擊我</button>   </div> </div> 

當我們點擊按鈕時,click 事件會首先在按鈕元素上觸發,然后依次向上傳遞到 inner 和 outer 元素,最后到達 document 對象。這就是事件冒泡的過程。

事件冒泡的示例

可以通過添加事件監聽器來觀察事件冒泡的過程:

<script>   document.getElementById('outer').addEventListener('click', function () {     console.log('外層 div 被點擊');   });    document.getElementById('inner').addEventListener('click', function () {     console.log('內層 div 被點擊');   });    document.getElementById('myButton').addEventListener('click', function () {     console.log('按鈕被點擊');   }); </script> 

在這個示例中,當我們點擊按鈕時,控制臺會依次輸出:

按鈕被點擊 內層 div 被點擊 外層 div 被點擊 

這說明事件從按鈕開始,依次向上傳遞到內層 div 和外層 div,也就是事件冒泡的過程。

阻止事件冒泡

當不希望事件冒泡到上層元素時,可以使用事件對象的 stopPropagation 方法來阻止事件冒泡:

document.getElementById('myButton').addEventListener('click', function (event) {   event.stopPropagation();   console.log('按鈕被點擊'); }); 

在按鈕的點擊事件處理函數中調用了 event.stopPropagation 方法,這樣點擊按鈕時,事件就不會冒泡到內層和外層的 div 元素了。

事件捕獲

除了事件冒泡,還有一個相反的過程叫做事件捕獲。

事件捕獲是指事件從最外層的元素開始,一層一層向內傳遞,直到目標元素。

我們可以通過在 addEventListener 方法的第三個參數中傳遞 true 來啟用事件捕獲:

document.getElementById('outer').addEventListener(   'click',   function () {     console.log('外層 div 被點擊');   },   true );  document.getElementById('inner').addEventListener(   'click',   function () {     console.log('內層 div 被點擊');   },   true );  document.getElementById('myButton').addEventListener(   'click',   function () {     console.log('按鈕被點擊');   },   true ); 

在這個示例中,當我們點擊按鈕時,控制臺會依次輸出:

外層 div 被點擊 內層 div 被點擊 按鈕被點擊 

移除事件監聽

可以使用 removeEventListener 方法來實現移除事件監聽,該方法的參數與 addEventListener 方法相同。

// 定義事件處理函數 function handleClick(event) {   alert('按鈕被點擊了!'); }  // 添加事件監聽器 document   .getElementById('myButton')   .addEventListener('click', handleClick, false);  // 移除事件監聽器 document   .getElementById('myButton')   .removeEventListener('click', handleClick, false); 

事件處理

如前面展開的描述,事件處理主要分為兩個階段:事件捕獲和事件冒泡。

  • 事件捕獲:事件從最外層的元素開始,一層一層向內傳遞,直到目標元素。

  • 事件冒泡:事件從目標元素開始,一層一層向外傳遞,直到最外層的元素。

事件對象

當事件發生時,瀏覽器會創建一個事件對象,并將其傳遞給事件處理函數。

通過這個事件對象,我們可以獲取事件的詳細信息,比如事件類型、目標元素、鼠標位置等。

document.getElementById('myButton').addEventListener('click', function (event) {   console.log('事件類型:' + event.type);   console.log('目標元素:' + event.target);   console.log('鼠標位置:' + event.clientX + ', ' + event.clientY); }); 

通過事件對象 event 可以獲取事件的類型、目標元素和鼠標位置等信息。

事件處理的示例

來看一個完整的如何處理不同類型的事件的示例:

這個頁面有一個按鈕,一個輸入框。

<!DOCTYPE html> <html lang="en">   <head>     <meta charset="UTF-8" />     <title>事件處理示例</title>   </head>   <body>     <button id="myButton">點擊我</button>     <input type="text" id="myInput" placeholder="輸入文字" />     <script>       // 處理點擊事件       document         .getElementById('myButton')         .addEventListener('click', function () {           alert('按鈕被點擊了!');         });        // 處理鍵盤事件       document         .getElementById('myInput')         .addEventListener('keydown', function (event) {           console.log('按下了鍵:' + event.key);         });        // 處理表單事件       document         .getElementById('myInput')         .addEventListener('change', function () {           console.log('輸入框的值改變了:' + this.value);         });     </script>   </body> </html> 

分別處理了按鈕的點擊事件、輸入框的鍵盤事件和輸入框的值改變事件。

現在你也可以開始自己試試事件處理了!

總結

  • ?? 事件就是用戶或瀏覽器執行的某些動作,比如說點擊按鈕、移動鼠標、按下鍵盤等等。

  • ?? 所有事件的處理都可以通過 addEventListener 方法來添加事件監聽器。

  • ?? 事件處理主要分為兩個階段:事件捕獲和事件冒泡。


該文章在 2024/10/23 9:41:28 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved