為什麼在js中需要添加addEventListener()?

来源:https://www.cnblogs.com/nikiL/p/18020090
-Advertisement-
Play Games

為什麼在js中需要添加addEventListener()? 1.What? addEventListener(監聽器) EventTarget.addEventListener()方法將指定的監聽器註冊到 EventTarget 上,當該對象觸髮指定的事件時,指定的回調函數就會被執行。事件目標可以 ...


為什麼在js中需要添加addEventListener()?

1.What?

addEventListener(監聽器)---EventTarget.addEventListener()方法將指定的監聽器註冊到 EventTarget 上,當該對象觸髮指定的事件時,指定的回調函數就會被執行。事件目標可以是一個文檔上的元素 Element、Document 和 Window,也可以是任何支持事件的對象(比如 XMLHttpRequest)。

addEventListener() 的工作原理是將實現 EventListener 的函數或對象添加到調用它的 EventTarget 上的指定事件類型的事件偵聽器列表中。如果要綁定的函數或對象已經被添加到列表中,該函數或對象不會被再次添加。

2.Why ?

  • 關註點分離:使用 addEventListener 將 HTML 結構(內容)與 JavaScript 行為(呈現)分開,使代碼更清晰和易於維護。

  • 靈活性:使用 addEventListener,你可以在同一個元素上附加多個事件監聽器,而不會覆蓋現有的監聽器。這使得處理各種場景變得更加靈活。

  • 無侵入式 JavaScript:通過以編程方式附加事件監聽器,可以使 HTML 標記保持乾凈,不受 JavaScript 代碼的干擾,提高了可讀性和可訪問性。

  • 動態事件處理:你可以在運行時動態地附加事件監聽器,這在處理動態創建或修改的元素時特別有用。

  • 閉包支持:使用 addEventListener 附加的事件監聽器可以輕鬆訪問封閉作用域(閉包)中的變數和函數,從而更容易地管理事件處理程式內的狀態和上下文。

  • 更清晰的錯誤處理:使用 addEventListener 可以更好地處理錯誤,因為事件處理代碼中的錯誤可以更有效地被捕獲和管理,而不像內聯事件處理程式那樣困難。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 背景 看到Apache DolphinScheduler社區群有很多用戶反饋和討論這塊問題,針對不相容的問題,不僅需要自己重新編譯各一個新包,而且因為預設是使用zk-3.8的配置,所以會出現不相容問題。使用zk-3.4配置即可適配3.4.x 解決辦法(一) 切換到項目源碼的根路徑中執行 mvn cl ...
  • 轉載至我的博客 https://www.infrastack.cn ,公眾號:架構成長指南 背景 隨著公司業務快速發展,對業務數據進行增長分析的需求越來越迫切,與此同時我們的業務數據量也在快速激增、每天的數據新增量大概在30w 左右,一年就會產生1 個億的數據,顯然基於傳統MySQL資料庫已經無法支 ...
  • 玩轉 CMS 目前接手的內容管理系統(CMS)基於 ant-design-vue-pro(簡稱模板項目或ant-vue-pro) 開發的,經過許多次迭代,形成了現在的模樣(簡稱本地項目)。 假如讓一名新手接手這個項目,他會遇到很多問題,比如 .env 的作用、開發時後端介面沒有寫好如何聯調、樣式使用 ...
  • 前言 從vue3開始vue引入了巨集,比如defineProps、defineEmits等。我們每天寫vue代碼時都會使用到這些巨集,但是你有沒有思考過vue中的巨集到底是什麼?為什麼這些巨集不需要手動從vue中import?為什麼只能在setup頂層中使用這些巨集? vue 文件如何渲染到瀏覽器上 要回答上 ...
  • 這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 前言 從vue3開始vue引入了巨集,比如defineProps、defineEmits等。我們每天寫vue代碼時都會使用到這些巨集,但是你有沒有思考過vue中的巨集到底是什麼?為什麼這些巨集不需要手動從vue中import?為什麼只能在setu ...
  • 文檔編輯功能提供了一系列的操作頁面的能力,使用戶能夠控制文檔結構,並調整文檔的佈局和格式,確保文檔內容以合理有序的方式精準呈現。 ComPDFKit 文檔編輯的優勢 插入或刪除頁面: 向文檔插入或刪除頁面,以滿足特定的排版要求。 文檔結構調整: 調整頁面排列順序或旋轉方向,以滿足特定的顯示或列印需求 ...
  • Howdz Dashboard —— 一個基於 Vue3、Typescript、Vite 的完全自定義配置的瀏覽器起始頁,支持 Chrome 插件和 Edge 插件。 ...
  • 隨著 JavaScript 開發變得越來越廣泛,命名空間和依賴關係變得越來越難以處理。人們已經開發出不同的解決方案以模塊系統的形式來解決這個問題。 CommonJS(CJS) CommonJS 是一種同步載入模塊的規範,主要用於伺服器端的 Node.js 環境。 // 模塊導出 module.exp ...
一周排行
    -Advertisement-
    Play Games
  • C#.Net的BCL提供了豐富的類型,最基礎的是值類型、引用類型,而他們的共同(隱私)祖先是 System.Object(萬物之源),所以任何類型都可以轉換為Object。 ...
  • 最近有群友咨詢C#如何調用Python?小編嘗試Python.NET過程中遭遇的版本相容性和環境配置難題,小編決定尋找一個更為簡單、穩定且對初學者友好的解決方案。小編搜索一番,除了Python.NET之外,還有其他途徑能夠幫助我們輕鬆地在C#項目調用Python腳本,那就是通過命令行調用,使用 Sy ...
  • .NET中特性+反射 實現數據校驗 在.NET中,我們可以使用特性+反射來實現數據校驗。特性是一種用於為程式中的代碼添加元數據的機制。元數據是與程式中的代碼相關聯的數據,但不直接成為代碼的一部分。通過特性,我們可以為類、方法、屬性等添加額外的信息,這些信息可以在運行時通過反射獲取和使用。 對反射不太 ...
  • Biwen.Settings 是一個簡易的配置項管理模塊,主要的作用就是可以校驗並持久化配置項,比如將自己的配置存儲到資料庫中,JSON文件中等 使用上也是很簡單,只需要在服務中註入配置, 比如我們有一個GithubSetting的配置項,我們只需要定義好對象然後註入到Service中即可: [De ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • 前言 VB.NET,全名Visual Basic .NET,是Microsoft .NET框架的一部分,是一種面向對象的編程語言。它繼承了Visual Basic的易用性,同時增加了對面向對象編程的支持。VB.NET提供了大量的內置函數,使得開發者可以更容易地處理字元串、數學計算、文件和目錄訪問等任 ...
  • 自定義可移動點二維坐標軸控制項 目錄 路由參數 坐標軸控制項定義 Demo 路由參數 X_YResultCollection為當前X軸對應Y軸值存儲字典 public class ResultCollectionChangedEventArgs(RoutedEvent routedEvent, obje ...
  • 自定義分頁控制項 tip: 該控制項的樣式用的是materialDesign庫,需要下載Nuget包 Code Xaml <UserControl x:Class="TestTool.CustomControls.PagingControl" xmlns="http://schemas.microsof ...
  • 最近群里有個小伙伴把Dapper遷移SqlSugar幾個不能解決的問題進行一個彙總,我正好寫一篇文章來講解一下 一、sql where in傳參問題: SELECT * FROM users where id IN @ids 答: SqlSugar中應該是 var sql="SELECT * FRO ...
  • 安裝nuget包 Wesky.Net.OpenTools 1.0.8或以上版本。支持.net framework 4.6以上版本,以及所有.net core以及以上版本引用。 開發一個簡單的Winform界面,用來測試使用。如需該winform的demo,可以在公眾號【Dotnet Dancer】後 ...