JS的事件綁定深入認識_javascript技巧
一、傳統事件模型
傳統事件模型中存在限制。
內嵌模型以HTML標籤屬性的形式使用,與HTML混合,這種方式無疑造成了修改以及擴充的問題,已經很少使用了。
腳本模型是將事件處理函數寫入js檔案中,從頁面取得元素進行對應事件函數的綁定以觸發執行。但也存在不足之處:
1.一個事件綁定多個事件監聽函數,後者將覆蓋前者。
2.需要限制重複綁定的情況
3.標準化event物件
二、現代事件綁定
DOM2級事件定義了兩個方法用於添加、刪除事件:addEventListener()、removeEventListener().他們分別接收三個參數:事件名、函數、冒泡或捕獲的布爾值(true表示捕獲,false表示冒泡)。
與之對應,IE提供了類似的兩個方法attachEvent()和detachEvent(),但IE的兩個方法存在另外的問題:無法傳遞this物件(IE中的this指向window)可以使用call方法進行物件冒充:
function addEvent(obj,type,fn){ if(typeof obj.addEventListener != 'undefined'){ obj.addEventListener(type,fn,false); }else if(obj.attachEvent != 'undefined'){ obj.attachEvent('on' + type,function(){ fn.call(obj,window.event); }); } };
但由於新增時執行的是匿名函數,因此新增後無法進行刪除;另外IE提供方法還會有無法依序執行綁定事件、存在記憶體洩漏的問題。
為了解決這一系列的問題,就必須對方法進行進一步的封裝,對其他瀏覽器使用DOM2級標準進行,對於IE,採用基於傳統模式的添加、刪除,思路為:
1.新增是使用JS的散列表儲存物件事件,為每一個物件事件分配一個ID值,按新增的呼叫順序,先判斷是否存在相同的處理函數,不存在的話就依次將事件綁定函數加入到散列表中,這樣解決了無法順序執行以及重複添加的問題
2.刪除時進行遍歷函數配對的判斷,存在則刪除
總結:
之前對JS的事件綁定並沒有太深的認識,甚至停留在傳統事件綁定模型上,對程序實現上還是認識太淺,這次學習封裝庫這部分內容時,才學習到很多JS上物件導向的應用。雖然類似JQuery的這樣js函式庫已經實現了很好的資料綁定機制的封裝效果,但只知其然,不知其所以然還有會有種蒙在鼓裡的感覺,親自去分析一下具體的實現,會有一種豁然開朗的感覺,也體會到,做好一個兼容性、通用性強的程序更要考慮很多內容,解決很多問題,也正在在這些問題中逐漸清楚很多的。

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

jquery綁定事件有4種方式,分別為:bind()、live()、delegate()和on()方法;其中bind()方法只能針對已經存在的元素進行事件的綁定,而live( )、on()、delegate()皆支援未來新新增元素的事件綁定。

使用UniApp開發應用程式時,可能會遇到以下錯誤提示:'xxx'事件未綁定。這是由於UniApp的事件綁定機制所導致的,需要正確設定才能解決問題。一、問題原因在UniApp中,頁面元件的事件綁定是透過v-on指令完成的。例如,在範本中加入按鈕元件:<button@click="onClick">點擊我</butto

javascript作為腳本語言, 可以為頁面上的元素綁定事件,用於在指定事件發生時能自動調用相應的事件處理程序處理事件。那怎麼給元素添加事件?以下這篇文章跟大家介紹一下JS綁定事件三種方式,希望對大家有幫助!

jquery綁定事件的作用:將普通的事件event綁定在DOM節點上,當DOM節點選取時,將事件與之綁定,方便使用者提供對應的動作。 jQuery中提供了四種事件綁定方式,分別是bind、live、delegate、on,對應的解除監聽的函數分別是unbind、die、undelegate、off。

jQuery是一種流行的JavaScript庫,廣泛用於處理Web頁面的互動性。其中,事件綁定是jQuery的重要功能之一,透過事件綁定可以實現對使用者互動操作的回應。本文將探討jQuery事件綁定技術,並給出具體的程式碼範例。一、事件綁定的基本概念事件綁定是指在DOM元素上新增事件監聽器,以便在特定事件發生時執行指定的操作。在jQuery中,透過選擇器選取需

Vue是一款流行的JavaScript框架,用於建立現代的Web應用程式。在Vue中,我們通常會使用指令來實作DOM元素的操作。其中,"click"事件是常用的一個指令之一,然而,在Vue應用程式中,我們經常會遇到"click"事件綁定無效的情況。本文將介紹解決此問題的方法。檢查元素是否存在第一步是確認要綁定"click"事件的元素是否存在。如果元素不存在,

Vue是一個流行的JavaScript框架,它採用了資料驅動的想法來簡化開發流程。 Vue的事件綁定功能是非常強大的,可以對頁面中的各種互動進行處理。在Vue的開發過程中,常常會使用到事件綁定函數參數,本文將詳細介紹這個功能的使用方法。在Vue中,可以使用v-on指令來綁定事件。 v-on指令後面跟著事件名和事件處理函數,例如:<bu

jQuery是一種流行的JavaScript庫,它簡化了網頁開發中的許多常見任務,其中包括元素選擇、DOM操作和事件處理。在jQuery中,事件綁定是非常常見且重要的操作之一。本文將詳細探討jQuery中事件綁定的方法,並透過具體的程式碼範例來幫助讀者更好地理解和應用這些方法。 1.bind()方法bind()方法是最傳統、最常用的事件綁定方法之一。它可
