註冊事件處理程式

来源:https://www.cnblogs.com/lemonyam/archive/2019/04/13/10702040.html
-Advertisement-
Play Games

設置 JavaScript 對象屬性為事件處理程式: 1、註冊事件處理程式的最簡單方法就是通過設置事件目標的屬性為所需事件處理程式函數 2、這種事件處理程式註冊技術適用於所有瀏覽器的所有常用事件類型 3、事件處理程式屬性的缺點是其設計都圍繞著假設每個事件目標對於每種事件類型將最多只有一個處理程式 註 ...


設置 JavaScript 對象屬性為事件處理程式:

  1、註冊事件處理程式的最簡單方法就是通過設置事件目標的屬性為所需事件處理程式函數

  2、這種事件處理程式註冊技術適用於所有瀏覽器的所有常用事件類型

  3、事件處理程式屬性的缺點是其設計都圍繞著假設每個事件目標對於每種事件類型將最多只有一個處理程式

註:事件處理程式是處理或響應事件的函數事件目標是發生的事件或與之相關的對象事件類型是一個用來說明發生什麼類型事件的字元串

  事件處理程式屬性的名字由 "on" 後面跟事件名組成(區分大小寫,且所有都是小寫):onclick、onchange 等

 

設置 HTML 標簽屬性為事件處理程式:

  1、用於設置的文檔元素事件處理程式屬性也能轉換成對應 HTML 標簽的屬性

  2、該屬性的值為 JavaScript 代碼字元串,且是事件處理函數的主體,而非完整的函數聲明

  3、如果 HTML 事件處理程式屬性包含多條 JavaScript 語句,要記住必須使用分號分隔這些語句或斷開屬性值使其跨多行

  4、如果把處理程式放到 <body> 標簽上,則瀏覽器會在 Window 對象上註冊它

註:客戶端編程的通用風格是保持 HTML 內容和 JavaScript 行為分離,所有我們應該儘量避免使用 HTML 事件處理程式屬性

 

addEventListener():

  1、除 IE8 及之前版本外的所有瀏覽器都支持的標準事件模型中,任何能成為事件目標的對象都定義了 addEventListener() 方法,使用這個方法可以為事件目標註冊事件處理程式

  2、addEventListener(tpye, function, bool),type 指定事件類型,它應該是不包含首碼 "on" 的字元串;function 指定類型事件發生時應該調用的函數;

     bool 通常為 false,若為 true,則函數將註冊為捕獲事件處理程式,併在事件不同的調度階段調用

  3、可以通過多次調用 addEventListener() 為同一個對象註冊同一事件類型的多個處理程式函數,所有該事件類型的註冊處理程式都會按註冊的順序調用

  4、使用相同的參數在同一個對象上多次調用 addEventListener() 是沒用的,處理程式仍然只註冊一次,同時重覆調用也不會改變調用處理程式的順序

註: 通過 removeEventListener() 方法可以刪除事件處理程式,它同樣有三個參數

 

attachEvent():

  1、IE9 之前的 IE 不支持 addEventListener() 和 removeEventListener(),所有,IE5 及之後的版本定義了類似的方法 attachEvent() 和 detachEvent() 方法

  2、它們只有兩個參數,因為 IE 事件模型不支持事件捕獲

  3、IE 方法的第一個參數使用了帶 "on" 首碼的事件處理程式屬性名

  4、允許相同的事件處理程式函數註冊多次,當特定的事件類型發生時,註冊函數的調用次數和註冊次數一樣

 

 

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
    <meta charset="UTF-8">
    <title>Event</title>
    <script>
        // 設置 Window 對象的 onload 屬性為一個事件處理程式
        window.onload = function () {
            alert("載入完成");
        }
        function myFunction() {
            let temp = document.getElementById("myP");
            temp.innerText = "Paragraph's content is changed";
        }
    </script>
</head>
<p>
<p id="myP">This is a test paragraph</p>
<!--設置 HTML 標簽屬性為事件處理程式-->
<p><button onclick="myFunction()">click me to change</button></p>
<p><div id="myDiv" style="width: 100px; height: 100px; background-color: lightpink">Hello Div</div></p>
<p><button id="myButton">click me to change div</button></p>
<script>
    let btn = document.getElementById("myButton");
    // 使用 addEventListener() 來註冊處理函數
    let handler = function () {
        let div = document.getElementById("myDiv");
        div.style.textAlign = "center";
        div.style.backgroundColor = "green";
    };
    if (btn.addEventListener)
        btn.addEventListener("click", handler, false);
    else if (btn.attachEvent)
        btn.attachEvent("onclick", handler);
</script>
</body>
</html>

 


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

-Advertisement-
Play Games
更多相關文章
  • pod 基礎使用命令 創建Podfile文件 使用命令打開Podfile文件 搜索pod 庫 更新本地Repo庫 安裝pod 庫 升級pod 庫 cocoapods庫安裝命令 檢查ruby源 1 gem sources -l 刪除原有ruby源 1 gem sources -remove https ...
  • 一、簡介消息處理機制主要涉及到這幾個類:1.Looper2.MessageQueue3.Message4.Handler 二、源碼分析 Looper.class的關鍵源碼: 消息迴圈退出過程 從上面可以看到loop()方法是一個死迴圈,只有當MessageQueue的next()方法返回null時才 ...
  • 近段時間剛學習完安卓基礎,在一家小公司入職,昨天晚上翻出了幾年前買的小米Note手機,打算用來真機調試Studio,結果運行一直安裝不了。 忘記截圖了,大概頁面差不多這樣。 網上看了好多貼子,開發者選項和USB調試就不用說了,這個大家都會。 還有說關掉“開發者選項-啟用MiUi優化”的,但是完關閉了 ...
  • 先打開蘋果官網,找到技術支持 2、選擇維修選項 3.查看維修狀態 4.顯示維修時間訂單 ...
  • apply-call-bind用法 ...
  • <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv ...
  • React 與 Vue 之間的對比,是前端的一大熱門話題。 vue 簡易上手的腳手架,以及官方提供必備的基礎組件,比如 vuex , vue router ,對新手真的比較友好; react 則把這些都交給社區去做,雖然這壯大了 react 的生態鏈,但新手要弄出一套趁手的方案挺麻煩的,不過好在現在 ...
  • 一,更換背景: 1.首先需要上傳幾張圖片到自己的博客園相冊中:如圖: 2.然後點擊其中一張單擊右鍵複製圖片地址鏈接 3.切換到博客園設置頁面中(我這裡選擇的是CornflowerBlue這個皮膚): 4.複製下麵代碼到“頁面定製CSS”中: 5.找到這一段代碼: 將url更改為剛纔複製的圖片鏈接; ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...