如今的JavaScript技術界裡最火熱的一項技術應該是『事件委託(event delegation)'了。使用事件委託技術能讓你避免對特定的每個節點增加事件監聽器;相反,事件監聽器是被加入到它們的父元素上。事件監聽器會分析從子元素冒泡上來的事件,找出是哪個子元素的事件。基本概念非常簡單,但仍有許多人不理解事件委託的工作原理。這裡我將要解釋事件委託是如何運作的,並提供幾個純JavaScript的基本事件委託的例子。
假設我們有一個UL元素,它有幾個子元素:
程式碼如下:
- Item 1
- Item 2
- Item 3
- Item 4
- Item 5
程式碼如下:
程式碼如下:
// 找到父元素,加入監聽器...
document.getElementById("parent-list").addEventListener("click",function(e) {
// e .target是被點擊的元素!
if(e.target && e.target.nodeName == "LI") {
// 找到目標,輸出ID!
複製程式碼
程式碼如下:
// 取得父元素DIV, 新增監聽器...
document.getElementById("myDiv").addEventListenerenerener ("click",function(e) {
// e.target是被點擊的元素
if(e.target && e.target.nodeName == "A") {
// 取得CSS類別名稱
var classes = e.target.className.split(" ");
// 搜尋符合!
if(classes) {
// For every CSS class the element has. ..
for(var x = 0; x // If it has the CSS class we want...
if(classes[x] == "classA ") {
// Bingo!
console.log("Anchor element clicked!");
// Now do something here....
}
}
}
} }); 上面這個例子中不僅比較了標籤名,而且比較了CSS類別名稱。雖然稍微複雜了一點,但還是很有代表性的。例如,如果某個A標記裡有一個span標記,則這個span將會成為target元素。這時候,我們需要上溯DOM樹結構,找到裡面是否有 A.classA 的元素。 因為大部分程式設計師都會使用jQuery等工具庫來處理DOM元素和事件,我建議大家都使用裡面的事件委託方法,因為這裡工具庫裡都提供了高級的委託方法和元素甄別方法。 希望這篇文章能幫助你理解JavaScript事件委託的幕後原理,希望你也感受到了事件委託的強大用處!

JavaScript字符串替換方法詳解及常見問題解答 本文將探討兩種在JavaScript中替換字符串字符的方法:在JavaScript代碼內部替換和在網頁HTML內部替換。 在JavaScript代碼內部替換字符串 最直接的方法是使用replace()方法: str = str.replace("find","replace"); 該方法僅替換第一個匹配項。要替換所有匹配項,需使用正則表達式並添加全局標誌g: str = str.replace(/fi

因此,在這裡,您準備好了解所有稱為Ajax的東西。但是,到底是什麼? AJAX一詞是指用於創建動態,交互式Web內容的一系列寬鬆的技術。 Ajax一詞,最初由Jesse J創造

10款趣味橫生的jQuery遊戲插件,讓您的網站更具吸引力,提升用戶粘性!雖然Flash仍然是開發休閒網頁遊戲的最佳軟件,但jQuery也能創造出令人驚喜的效果,雖然無法與純動作Flash遊戲媲美,但在某些情況下,您也能在瀏覽器中獲得意想不到的樂趣。 jQuery井字棋遊戲 遊戲編程的“Hello world”,現在有了jQuery版本。 源碼 jQuery瘋狂填詞遊戲 這是一個填空遊戲,由於不知道單詞的上下文,可能會產生一些古怪的結果。 源碼 jQuery掃雷遊戲

本教程演示瞭如何使用jQuery創建迷人的視差背景效果。 我們將構建一個帶有分層圖像的標題橫幅,從而創造出令人驚嘆的視覺深度。 更新的插件可與JQuery 1.6.4及更高版本一起使用。 下載

本文討論了在瀏覽器中優化JavaScript性能的策略,重點是減少執行時間並最大程度地減少對頁面負載速度的影響。

本文演示瞭如何使用jQuery和ajax自動每5秒自動刷新DIV的內容。 該示例從RSS提要中獲取並顯示了最新的博客文章以及最後的刷新時間戳。 加載圖像是選擇

Matter.js是一個用JavaScript編寫的2D剛體物理引擎。此庫可以幫助您輕鬆地在瀏覽器中模擬2D物理。它提供了許多功能,例如創建剛體並為其分配質量、面積或密度等物理屬性的能力。您還可以模擬不同類型的碰撞和力,例如重力摩擦力。 Matter.js支持所有主流瀏覽器。此外,它也適用於移動設備,因為它可以檢測觸摸並具有響應能力。所有這些功能都使其值得您投入時間學習如何使用該引擎,因為這樣您就可以輕鬆創建基於物理的2D遊戲或模擬。在本教程中,我將介紹此庫的基礎知識,包括其安裝和用法,並提供一


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

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

Atom編輯器mac版下載
最受歡迎的的開源編輯器

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Dreamweaver Mac版
視覺化網頁開發工具