事件委托
事件委托
利用冒泡原理,把事件加到父級(jí)元素上,觸發(fā)事件的執(zhí)行效果
優(yōu)點(diǎn):
節(jié)省內(nèi)存開銷
對(duì)于追加的節(jié)點(diǎn)同樣有效
舉了例子,創(chuàng)建一堆無序列表,我們希望當(dāng)鼠標(biāo)滑過的時(shí),改變當(dāng)前
var ulBox = document.getElementById("ulBox"); var li = document.getElementsByTagName("li"); var l = li.length; for(i=0;i這樣,我們已經(jīng)為每個(gè)
都添加了事件,但是,這個(gè)事件循環(huán)了 i 次,比較消耗性能。 用事件代理也可以實(shí)現(xiàn)同樣的效果
var ulBox = document.getElementById("ulBox"); ulBox.onmouseover = function(e){ var hover = e||window.event;//獲取事件對(duì)象, var nodeLi = hover.target||hover.srcElement;//獲取事件對(duì)象的具體子元素 nodeLi.style.background="red"; } ulBox.onmouseout = function(e){ var hover = e||window.event;//獲取事件對(duì)象, var nodeLi = hover.target||hover.srcElement;//獲取事件對(duì)象的具體子元素 nodeLi.style.background="red"; }如果我們要追加幾個(gè)
,使用一個(gè)
如果使用常規(guī)方法
var ulBox = document.getElementById("ulBox"); var li = document.getElementsByTagName("li"); var btn = document.getElementById("btn"); var l = li.length; for(i=0;i新加入的
并不能響應(yīng)滑過變色的事件,因?yàn)樵谔砑油暝刂?,循環(huán)已經(jīng)執(zhí)行完畢。 使用事件委托,即可以直接響應(yīng)事件效果
ulBox.onmouseover=function(e){ var hover=e||window.event; var nodeLi=hover.target||hover.srcElement; nodeLi.style.background="red"; } ulBox.onmouseout=function(e){ var hover=e||window.event; var nodeLi=hover.target||hover.srcElement; nodeLi.style.background=""; } btn.onclick=function(){ var oLi = document.createElement("li"); oLi.innerHTML="Low"; ulBox.appendChild(oLi); }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/91396.html
摘要:實(shí)際上,可以將其理解為某種形式的繼承。如果上下文是,則使用全局對(duì)象代替。例如的第個(gè)參數(shù)是上下文,后續(xù)是實(shí)際傳入的參數(shù)序列中允許更換上下文是為了共享狀態(tài),尤其是在事件回調(diào)中。 公開記錄學(xué)習(xí)JS MVC,不知道能堅(jiān)持多久= =。以《基于MVC的JavaScript web富應(yīng)用開發(fā)》為主要學(xué)習(xí)資料。接上一篇類的學(xué)習(xí),發(fā)現(xiàn)實(shí)在是看暈了,有些例子是能看懂在干嘛,但是不知道為什么這樣做,有的甚至...
摘要:事件冒泡與事件捕獲事件冒泡和事件捕獲分別由微軟和網(wǎng)景公司提出,這兩個(gè)概念都是為了解決頁面中事件流事件發(fā)生順序的問題。如下假設(shè)三層都有事件監(jiān)聽,這時(shí)我們點(diǎn)擊的小的藍(lán)方框,事件執(zhí)行的順序是怎么樣的呢紅黃藍(lán)事件冒泡微軟提出了名為事件冒泡的事件流。 事件冒泡與事件捕獲 事件冒泡和事件捕獲分別由微軟和網(wǎng)景公司提出,這兩個(gè)概念都是為了解決頁面中事件流(事件發(fā)生順序)的問題。 如下:假設(shè)三層div都...
摘要:事件冒泡與事件捕獲事件冒泡和事件捕獲分別由微軟和網(wǎng)景公司提出,這兩個(gè)概念都是為了解決頁面中事件流事件發(fā)生順序的問題。如下假設(shè)三層都有事件監(jiān)聽,這時(shí)我們點(diǎn)擊的小的藍(lán)方框,事件執(zhí)行的順序是怎么樣的呢紅黃藍(lán)事件冒泡微軟提出了名為事件冒泡的事件流。 事件冒泡與事件捕獲 事件冒泡和事件捕獲分別由微軟和網(wǎng)景公司提出,這兩個(gè)概念都是為了解決頁面中事件流(事件發(fā)生順序)的問題。 如下:假設(shè)三層div都...
摘要:事件冒泡與事件捕獲事件冒泡和事件捕獲分別由微軟和網(wǎng)景公司提出,這兩個(gè)概念都是為了解決頁面中事件流事件發(fā)生順序的問題。如下假設(shè)三層都有事件監(jiān)聽,這時(shí)我們點(diǎn)擊的小的藍(lán)方框,事件執(zhí)行的順序是怎么樣的呢紅黃藍(lán)事件冒泡微軟提出了名為事件冒泡的事件流。 事件冒泡與事件捕獲 事件冒泡和事件捕獲分別由微軟和網(wǎng)景公司提出,這兩個(gè)概念都是為了解決頁面中事件流(事件發(fā)生順序)的問題。 如下:假設(shè)三層div都...
閱讀 1277·2021-10-14 09:50
閱讀 1578·2019-08-30 15:54
閱讀 1040·2019-08-30 11:22
閱讀 2929·2019-08-30 10:50
閱讀 1815·2019-08-29 18:39
閱讀 3063·2019-08-29 13:07
閱讀 2086·2019-08-28 17:54
閱讀 760·2019-08-26 17:44