javascript委託程式碼例項
分享一段程式碼例項,它實現了事件委託效果。
所謂的委託,就是自己的事情委託給別人做;將自己的事件處理函式註冊在父元素身上。
原理就是利用事件冒泡現象,程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script> window.onload=function(){ var ulNode = document.querySelector(".ul-box"); var oshow = document.querySelector(".antzone"); ulNode.addEventListener('click', handleClick, false); function handleClick(evt) { evt.preventDefault(); var target = evt.target; var liNode = target.parentNode.nodeName.toLowerCase() === "li" && target.parentNode || target; oshow.innerHTML=liNode.innerHTML; } } </script> </head> <body> <ul class="ul-box"> <li><a href="#">螞蟻部落一</a></li> <li><a href="#">螞蟻部落二</a></li> </ul> <div class="antzone"></div> </body> </html>
上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。
一.程式碼註釋:
(1).window.onload=function(){},文件內容完全載入完畢再去執行函式中的程式碼。
(2).var ulNode = document.querySelector(".ul-box"),獲取class屬性值為ul-box的元素物件。
(3).var oshow = document.querySelector(".antzone"),獲取class屬性值為antzone的元素物件。
(4).ulNode.addEventListener('click', handleClick, false);,為ulNode註冊click事件處理函式。
(5).function handleClick(evt) {},事件處理函式,evt是傳遞的事件物件。
(6).evt.preventDefault(),阻止預設動作,也就是阻止點選連結的時候跳轉動作。
(7).var target = evt.target,獲取點選的目標物件。
(8).var liNode = target.parentNode.nodeName.toLowerCase() === "li" && target.parentNode || target,如果是點選連結a元素,那麼就獲取它的父元素li,如果點選的是li或者ul元素,那麼就直接返回li或者ul元素。
(9).oshow.innerHTML=liNode.innerHTML,將html內容寫入oshow元素。
二.相關閱讀:
(1).document.querySelector()可以參閱document.querySelector()一章節。
(2).addEventListener()可以參閱addEventListener()一章節。
(3).preventDefault()可以參閱javascript preventDefault()一章節。
(4).target可以參閱javascript event.target一章節。
(5).parentNode可以參閱parentNode一章節。
(6).nodeName可以參閱js nodeName一章節。
(7).toLowerCase()可以參閱javascript toLowerCase()一章節。
(8).innerHTML可以參閱innerHTML一章節。
相關文章
- javascript事件委託程式碼例項JavaScript事件
- 委託、事件--委託例項篇事件
- javascript的for in例項程式碼JavaScript
- JavaScript 事件委託詳解JavaScript事件
- JavaScript in運算子程式碼例項JavaScript
- javascript操作xml程式碼例項JavaScriptXML
- JavaScript confirm() 程式碼例項JavaScript
- javascript Function()使用程式碼例項JavaScriptFunction
- JavaScript dom操作程式碼例項JavaScript
- javascript階乘程式碼例項JavaScript
- javascript中的事件委託(代理)JavaScript事件
- 委託初步瞭解(程式碼段展示)
- jQuery程式碼優化:事件委託篇jQuery優化事件
- JavaScript 阻止事件冒泡程式碼例項JavaScript事件
- JavaScript取餘數程式碼例項JavaScript
- JavaScript獲取星期程式碼例項JavaScript
- javascript鍵盤事件程式碼例項JavaScript事件
- javascript 絕對值程式碼例項JavaScript
- javascript遞迴例項程式碼演示JavaScript遞迴
- JavaScript禁用tab鍵程式碼例項JavaScript
- javascript擷取字串程式碼例項JavaScript字串
- JavaScript日曆效果程式碼例項JavaScript
- javascript 計算器程式碼例項JavaScript
- javascript 依賴注入程式碼例項JavaScript依賴注入
- javascript深拷貝程式碼例項JavaScript
- JavaScript浮動廣告程式碼例項JavaScript
- JavaScript運動框架程式碼例項JavaScript框架
- javascript字串操作程式碼封裝程式碼例項JavaScript字串封裝
- JavaScript事件委託的技術原理JavaScript事件
- JavaScript進階系列06,事件委託JavaScript事件
- C#自學(一)委託(delegate)、委託泛型、多播委託C#泛型
- JavaScript多級選項卡效果程式碼例項JavaScript
- 委託與事件-委託詳解(一)事件
- JavaScript 表單驗證程式碼例項JavaScript
- javascript生成隨機數程式碼例項JavaScript隨機
- javascript開關按鈕程式碼例項JavaScript
- JavaScript點選投票效果程式碼例項JavaScript
- javascript緩衝運動程式碼例項JavaScript