97免费在线观看视频 I 午夜夫妻视频 I 久久久久久网站 I 天堂网男人 I 欧美大波大乳人奶 I 丝袜 中出 制服 人妻 美腿 I 窝窝午夜理论片影院 I 日韩在线伦理电影 I 韩国特级毛片 I 亚洲欧美另类激情 I 在线成人日韩 I 麻豆视频免费看 I 黄色生活毛片 I 极品一线天小嫩嫩真紧 I 色久天堂 I 久久久久久黄色片 I 林智妍三级露全乳电影视频 I 大肉大捧一进一出好爽视频 I 空乘伦理hd I 少妇口述与子做过爱 I 成人免费影片 I 国产精品国内免费一区二区三区 I 日韩制服一区 I 青青草福利在线 I 日本在线观看不卡视频 I 婷婷六月综合亚洲 I 国产又粗又黄又硬 I 美女扒开屁股让男子桶爽 I 欧美性午夜视频观看 I 欧美狠狠插 I 亚洲福利在线观看视频 I 无码抽搐高潮喷水流白浆 I 亚洲欧美国产日韩色伦 I 你懂的视频网站在线观看 I www.蜜桃视频在线观看 I 日本无码人妻精品一区二区蜜桃 I 久久中文字幕人妻丝袜 I 碰草在线视频 I 日韩精品成人av网站

js事件委托也叫事件代理

2020/11/13 12:00:58   閱讀:2786    發(fā)布者:2786


事件委托也叫事件代理,簡(jiǎn)單點(diǎn)說(shuō)就是,把事件綁定到父級(jí)上,監(jiān)聽(tīng)子元素的冒泡事件


在利用事件委托的時(shí)候,我們還必須要知道一個(gè)概念:事件對(duì)象下的事件源

事件源:在事件中,當(dāng)前操作的那個(gè)元素就是事件源。比如我們點(diǎn)擊a標(biāo)簽發(fā)生onclick事件時(shí),事件源就是a標(biāo)簽,當(dāng)點(diǎn)擊li發(fā)生onclick事件時(shí),那么事件源就是li

window.onload = function(){ 
    var oUl = document.getElementById('ull');
    var aLi = document.getElementsByTagName('li'); //獲取所有列
    for(var i =0;i < aLi.length;i++){ 
         aLi[i].onmouseover = function(){              this.style.background = "red";         }
}

當(dāng)然這樣一看代碼也沒(méi)什么問(wèn)題,通過(guò)循環(huán)給每個(gè)li加事件,但想一想如果我們有很多個(gè)li,是不是要加很多次事件,這樣其實(shí)是非常耗性能的。那么我們會(huì)想,能不能只加一個(gè)事件就能實(shí)現(xiàn)呢。當(dāng)然是能的,不然我就不會(huì)在這扯了。

     那就是通過(guò)冒泡原理進(jìn)行事件委托,我們可以把事件只加給父級(jí)oUL,這樣不管移入哪個(gè)li,都會(huì)觸發(fā)父級(jí)的移入事件,(對(duì)冒泡不太理解的,可以參考我的JS冒泡的文章),但這個(gè)時(shí)候也有個(gè)問(wèn)題,因?yàn)槲业男枨笫?,讓?duì)應(yīng)的li變顏色,不是讓整個(gè)列表變,它怎么知道我鼠標(biāo)移入的是哪個(gè)LI,這個(gè)時(shí)候萬(wàn)能的事件對(duì)象中的一個(gè)屬性就要出場(chǎng)了,就是事件源 (不管事件綁定在那個(gè)元素中 都指的是實(shí)際觸發(fā)事件的那個(gè)的目標(biāo)),就是能獲取到你當(dāng)前鼠標(biāo)所在的LI,

不過(guò)這個(gè)有兼容性問(wèn)題, IE和標(biāo)準(zhǔn)下不同,標(biāo)準(zhǔn)指的就是比較新版本的那些瀏覽器了

IE:window.event.srcElement
標(biāo)準(zhǔn):event.target

所以需要做下兼容,也很簡(jiǎn)單。

window.onload = function(){ 
    var oUl = document.getElementById('ull');
     var aLi = document.getElementsByTagName('li');

  oUl.onmouseover = function(ev){ 
     var event = ev||window.event;  // 獲取event對(duì)象
     var target = ev.target || ev.srcElement; // 獲取觸發(fā)事件的目標(biāo)對(duì)象
    
     if(target.nodeName.toLowerCase() == 'li'){  //判斷目標(biāo)對(duì)象是不是li
         target.style.background = 'red';
     }

  }
代碼中加了一個(gè)標(biāo)簽名的判斷,主要原因是如果不加判斷,當(dāng)你鼠標(biāo)移入到父級(jí)oUL上面的時(shí)候,整個(gè)列表就會(huì)變紅,這不是我們想要的結(jié)果,所以要判斷一下。
target.nodeName 彈出的名字是大寫(xiě)的,所以需要轉(zhuǎn)換大小寫(xiě)再比較。

其實(shí)事件委托還有第二個(gè)優(yōu)點(diǎn):就是新添加的元素還會(huì)有之前的事件

假定我們又有一個(gè)需求,點(diǎn)擊某個(gè)按鈕,可以在列表中再創(chuàng)建一個(gè)li,這個(gè)時(shí)候一般方法,因?yàn)樾聞?chuàng)建的li沒(méi)有加事件,所以是不具備移入變紅的功能的,但是用事件委托的方法,新的li,同樣有這個(gè)事件。原理也很容易相同,因?yàn)槭录羌釉诟赣H上面的,父親在,事件在
主站蜘蛛池模板: 嫩草影院2019 | 熟妇人妻无乱码中文字幕真矢织江 | 亚洲永久精品在线观看 | 精品无码国产日韩制服丝袜 | 人妻系列无码专区久久五月天 | 日日碰 | 日韩国产91 | 久久久久免费看成人影片 | 亚洲综合色88综合天堂 | 中文永久有效幕中文永久 | 男女做爰猛烈吃奶啪啪喷水网站 | 中文字幕二十三页2 | 欧美视频免费看 | 日本高清视频www夜色资源 | 精品国产免费观看久久久 | 亚洲中文无码a∨在线观看 国产精品入口a级 | 国产无人区码一码二码三mba | 国产理论 | 国产高清在线a视频大全 | 91精品久久天干天天天按摩 | 亚洲人成色7777在线观看 | 国产视频一区在线播放 | 欧美性折磨bdsm激情另类视频 | 麻豆人妻少妇精品无码专区 | 337p日本欧洲亚洲大胆精品555588 | 国产小视频免费 | 久久久久久久亚洲国产精品87 | 国内精品免费久久久久电影院 | 不卡中文字幕在线观看 | 久久综合久色欧美综合狠狠 | 成人六区| 无码少妇一区二区性色av | 亚洲中文字幕无码中文 | 亚洲爽,爽网 | 真人作爱90分钟免费看视频 | 性猛交xxxxx富婆免费视频 | 大肉大捧一进一出好爽视色大师 | 一本久道久久综合狠狠躁av | 亚洲精品成人无码中文毛片不卡 | 中国亚州女人69内射少妇 | 国产理论高清一卡二卡三卡 | 国产 中文 亚洲 日韩 欧美 | 色香阁综合无码国产在线 | 久久精品亚洲 | 午夜久久av | 黄色一级大片在线免费看产 | 日韩av一国产av一中文字慕 | 国产精品亚亚洲欧关中字幕 | 久久精品国产精品亚洲蜜月 | 91在线观 | 麻豆精品国产综合久久 | 亚洲午夜无码毛片av久久 | 成年男人午夜片 | 久久免费国产视频 | 99久久精品国产成人综合 | 久久激情综合狠狠爱五月 | 亚洲人成手机电影网站 | 91精品国产92久久久久 | 免费无遮挡禁18污污网站 | 女人与牲口性恔配视频免费 | 成人免费一区二区三区视频软件 | 色欲人妻aaaaaa无码 | 午夜精品久久久久久久99热浪潮 | 精品精品欲天堂导航 | 日本久久久久久久久久加勒比 | 啪啪黄色网址 | www.五月天com | 在线 色| 国产精品麻豆成人av电影艾秋 | 免费毛片手机在线播放 | 精品自拍视频 | 99国产精品一区二区 | 成人性生活大片免费看ⅰ软件 | 日p免费视频 | 日本不卡二区 | 欧美成人精品免费 | 精品国产乱码久久久久久鸭王1 | 快播黄色片 | 成年人av网站 | 伊人免费网| 天堂视频在线观看免费 | 男人靠女人免费视频网站 | 国产偷自一区二区三区 | 四虎永久在线精品免费网址 | 久久精品第一国产久精国产宅男66 | 国产亚洲欧美另类一区二区 | 男人和女人做爽爽视频 | 狠狠色狠狠色综合日日不卡 | 国产精品香港三级国产av | 中文字幕久无码免费久久 | 手机看片国产一区 | 九九久久精品国产 | 国产精品国产三级国产av麻豆 | 超碰成人网 | 亚洲中文字幕久久精品无码app | av丁香| 国产中文成人精品久久久 | 香蕉视频在线免费播放 | 欧美男男大粗吊1069 |