首頁 web前端 js教程 js自訂事件及事件互動原理概述(一)_javascript技巧

js自訂事件及事件互動原理概述(一)_javascript技巧

May 16, 2016 pm 05:42 PM
事件 互動 自訂事件

在JS中事件是JS與瀏覽器互動的主要途徑。事件是一種叫做觀察者的設計模式,這是一種創建鬆散耦合程式碼的技術。物件可以發布事件,用來表示在該物件生命週期中某個有趣的時刻到了。然後其他對象可以觀察該對象,等待這些有趣的時刻到來並透過運行程式碼來回應。

觀察者模式有兩類物件組成:主題和觀察者。主體負責發布事件,同時觀察者透過訂閱這些事件來觀察該主體。這個模式的一個關鍵概念是主體並不知道觀察者的任何事情,也就是說它可以獨自存在並正常運作即使觀察者不存在。從另一方面來說,觀察者知道主體並能註冊事件的回呼函數(事件處理程序)。涉及DOM上時,DOM元素就是主體,你的事件處理程式碼就是觀察者。

事件是與DOM互動的最常見的方式,但它們也可以用於非DOM程式碼中----透過實作自訂事件。自訂事件背後的概念是創建一個管理事件的對象,讓其他對象監聽那些事件。說簡單點就是我們希望在程式運行的時候,路線可能會有很多,如果程式運行到了一個特殊的地方,我們希望立刻運行用戶註冊的方法裡面的程式碼,運行完畢後再繼續運行,這個過程叫做監聽。

例如,建立一個檔案MyEvent.js文件,裡面建立一個類別:

複製程式碼 程式碼如下:

function MyEvent(){
this.handler;
}
MyEvent.prototype={
addHandler:function(handler)
{
{
.handler=handler;
},
fire:function()
{
this.handler();
},
removeHandler:function()
{
{
this.handler=null;
}
}


上面使用js原型的思想創建的一個類,如果讀者不太了解可以查看相關資料。 MyEvent類型有一個單獨的屬性handler,用來儲存事件處理程序(也就是使用者註冊的方法)。還有三個方法:addHandler(),用於註冊事件處理程序;fire(),用於觸發一個事件;以及removeHandler(),用於註銷事件的處理程序。
然後我們可以這樣使用,新建一個html文件,放於和MyEvent.js同一個目錄,方便引用。程式碼如下: 複製程式碼
程式碼如下:











上述的註解已經很詳細的說明了其中的一種使用方式。這是一個最簡單的自訂事件,不過還有很多缺陷,如何優化將在(二)裡面講解。
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1662
14
CakePHP 教程
1419
52
Laravel 教程
1312
25
PHP教程
1262
29
C# 教程
1235
24
事件 ID 4660:已刪除物件 [修復] 事件 ID 4660:已刪除物件 [修復] Jul 03, 2023 am 08:13 AM

我們的一些讀者遇到了事件ID4660。他們通常不確定該怎麼做,所以我們在本指南中解釋。刪除物件時通常會記錄事件ID4660,因此我們還將探索一些實用的方法在您的電腦上修復它。什麼是事件ID4660?事件ID4660與活動目錄中的物件相關,將由下列任一因素觸發:物件刪除–每當從ActiveDirectory中刪除物件時,都會記錄事件ID為4660的安全事件。手動變更–當使用者或管理員手動變更物件的權限時,可能會產生事件ID4660。變更權限設定、修改存取等級或新增或刪除人員或群組時,可能會發生這種情

在iPhone鎖定畫面上取得即將到來的日曆事件 在iPhone鎖定畫面上取得即將到來的日曆事件 Dec 01, 2023 pm 02:21 PM

在運行iOS16或更高版本的iPhone上,您可以直接在鎖定畫面上顯示即將到來的日曆事件。繼續閱讀以了解它是如何完成的。由於錶盤複雜功能,許多AppleWatch用戶習慣能夠看一眼手腕來查看下一個即將到來的日曆事件。隨著iOS16和鎖定螢幕小部件的出現,您可以直接在iPhone上查看相同的日曆事件訊息,甚至無需解鎖設備。日曆鎖定螢幕小元件有兩種風格,可讓您追蹤下一個即將發生的事件的時間,或使用更大的小元件來顯示事件名稱及其時間。若要開始新增小元件,請使用面容ID或觸控ID解鎖iPhone,長按

開啟win11的分割畫面互動方式 開啟win11的分割畫面互動方式 Dec 25, 2023 pm 03:05 PM

在win11系統中,我們可以透過開啟分割畫面互動來讓多個顯示器使用同一款系統,共同操作,但是很多朋友不知道分割畫面互動怎麼開啟,其實只要在系統設定中找到顯示器就可以了,下面一起來學習一下吧。 win11分割畫面互動怎麼開啟1、點選開始選單,找到其中的「設定」2、然後在其中找到「系統」設定。 3.進入系統設定後,在左側選擇「顯示」4、接著在右邊的多顯示器中選擇「擴充這些顯示器」即可。

Vue3+TS+Vite開發技巧:如何與後端API進行交互 Vue3+TS+Vite開發技巧:如何與後端API進行交互 Sep 08, 2023 pm 06:01 PM

Vue3+TS+Vite開發技巧:如何與後端API進行互動引言:在網頁應用程式開發中,前端與後端之間的資料互動是一個非常重要的環節。 Vue3作為一種流行的前端框架,與後端API互動的方式也有很多種。本文將介紹如何使用Vue3+TypeScript+Vite開發環境來與後端API進行交互,並透過程式碼範例加深理解。一、使用Axios發送請求Axios是

在JavaScript中,'oninput'事件的用途是什麼? 在JavaScript中,'oninput'事件的用途是什麼? Aug 26, 2023 pm 03:17 PM

當輸入框中新增值時,就會發生oninput事件。您可以嘗試執行以下程式碼來了解如何在JavaScript中實現oninput事件-範例<!DOCTYPEhtml><html>  <body>   <p>Writebelow:</p>   <inputtype="text&quot

jquery中常用的事件有哪些 jquery中常用的事件有哪些 Jan 03, 2023 pm 06:13 PM

jquery中常用的事件有:1、window事件;2、滑鼠事件,是當使用者在文件上方移動或點選滑鼠時而產生的事件,包括滑鼠點選、移入事件、移出事件等;3、鍵盤事件,是使用者每次按下或釋放鍵盤上的按鍵時都會產生事件,包括按下按鍵事件、釋放按鍵按鍵等;4、表單事件,例如當元素獲得焦點時會觸發focus()事件,失去焦點時會觸發blur()事件,表單提交時會觸發submit()事件。

VUE3基礎教學:使用Vue.js自訂事件 VUE3基礎教學:使用Vue.js自訂事件 Jun 15, 2023 pm 09:43 PM

Vue.js是一款流行的JavaScript框架,它提供了許多方便的特性,所以它在開發網頁應用程式時非常有用。 Vue.js中的自訂事件系統使其更加靈活,並且可以透過元件事件觸發和處理來實現更好的程式碼重用性。在本文中,我們將討論如何使用Vue.js的自訂事件。 Vue.js中自訂事件的基礎在Vue.js中,我們可以透過v-on指令來監聽DOM事件。例如,

uniapp實作如何使用JSBridge實作與原生交互 uniapp實作如何使用JSBridge實作與原生交互 Oct 20, 2023 am 08:44 AM

uniapp實作如何使用JSBridge實作與原生交互,需要具體程式碼範例一、背景介紹在行動應用開發中,有時需要與原生環境進行交互,例如呼叫原生的一些功能或取得原生的一些資料。 uniapp作為一種跨平台的行動應用開發框架,提供了一種方便的方式來實現與原生交互,即使用JSBridge進行通訊。 JSBridge是一種前端與行動原生端互動的技術方案,透過在前端和

See all articles