事件委托

概念

事件委托又叫事件代理扔茅,事件委托就是利用事件冒泡傅联,只制定一個事件處理程序,就可以管理某一類型的所有事件浩蓉。
在js中事件冒泡得知派继,子元素身上的事件會冒泡到父元素身上宾袜。事件代理就是將未來子元素身上的時間加在了父元素身上,當(dāng)子元素時間觸發(fā)時驾窟,會一級一級向上執(zhí)行庆猫,這樣我們就可以讓父元素上代為執(zhí)行。通過Event對象可判斷是哪個子元素觸發(fā)了事件绅络。

為什么使用委托

dom對象都需要有事件處理函數(shù)月培,我們可以直接對每一個dom設(shè)置處理函數(shù),但是如果我們有很多dom需要添加事件處理呢恩急?如果我們有100個a標(biāo)簽杉畜,每個a標(biāo)簽都有相同的click事件。大家都能想到的方法是通過for循環(huán)衷恭,遍歷每個a標(biāo)簽添加事件以達(dá)到目的此叠。但是這樣做又有什么缺點呢?
在JavaScript中随珠,添加到頁面上的處理事件程序的數(shù)量講直接關(guān)系到頁面整體的運行性能拌蜘,因為需要不斷的訪問dom節(jié)點進(jìn)行交互,dom操作是一個很耗費性能的操作牙丽,這樣事件過多就將會引起瀏覽器延長整個界面交互的時間。所以減少dom操作也是性能優(yōu)化的一個重要環(huán)節(jié)兔魂。
每一個函數(shù)都是一個對象烤芦,每個對象都會占用一定的內(nèi)存空間,對象越多占用的空間也就越大析校,性能就會越來越差构罗。
又如果,因頁面美化原因智玻,我們這100個a標(biāo)簽是懶加載的形式遂唧,我們不知道當(dāng)前頁面有多少個a標(biāo)簽,也不知道一共有多少個a標(biāo)簽吊奢,這樣通過for循環(huán)的方式是不是又無法達(dá)到目的了呢盖彭。
此時,如果我們是用時間委托页滚,那么我們就可以只對他們的父級元素這一個對象進(jìn)行操作召边,無論是dom操作和事件操作,相對于for循環(huán)的方式都節(jié)省了很多資源裹驰,新增對象也無需再添加事件隧熙,自然性能就更優(yōu)。

代碼示例
<div id='parent'>
  <a href='#' id='baidu'><a>
  <a href='#' id='jianshu'><a>
</div>
var dom = document.getElementById('parent');
dom.addEventListener('click', function(e) {
  if(e.target.nodeName.toLowerCase == 'a') {
    if(e.target.id == 'baidu') {
      location.;
    } else if (e.target.id == 'jianshu') {
      location.href = "http://www.reibang.com";
    }
  })
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末幻林,一起剝皮案震驚了整個濱河市贞盯,隨后出現(xiàn)的幾起案子音念,更是在濱河造成了極大的恐慌,老刑警劉巖躏敢,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件闷愤,死亡現(xiàn)場離奇詭異,居然都是意外死亡父丰,警方通過查閱死者的電腦和手機(jī)肝谭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蛾扇,“玉大人攘烛,你說我怎么就攤上這事《剖祝” “怎么了坟漱?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長更哄。 經(jīng)常有香客問我芋齿,道長,這世上最難降的妖魔是什么成翩? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任觅捆,我火速辦了婚禮,結(jié)果婚禮上麻敌,老公的妹妹穿的比我還像新娘栅炒。我一直安慰自己,他們只是感情好术羔,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布赢赊。 她就那樣靜靜地躺著,像睡著了一般级历。 火紅的嫁衣襯著肌膚如雪释移。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天寥殖,我揣著相機(jī)與錄音玩讳,去河邊找鬼。 笑死嚼贡,一個胖子當(dāng)著我的面吹牛锋边,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播编曼,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼豆巨,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了掐场?” 一聲冷哼從身側(cè)響起往扔,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤贩猎,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后萍膛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吭服,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年蝗罗,在試婚紗的時候發(fā)現(xiàn)自己被綠了艇棕。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡串塑,死狀恐怖沼琉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情桩匪,我是刑警寧澤打瘪,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站傻昙,受9級特大地震影響闺骚,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜妆档,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一僻爽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧贾惦,春花似錦进泼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绞惦。三九已至逼纸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間济蝉,已是汗流浹背杰刽。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留王滤,地道東北人贺嫂。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像雁乡,于是被迫代替她去往敵國和親第喳。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容

  • * 什么是事件委托 委托踱稍,就是讓別人幫我們做事曲饱。某件事情本身應(yīng)該由你來做悠抹,而你卻加到別人身上來完成。事件委托扩淀,也叫...
    果汁涼茶丶閱讀 1,270評論 0 4
  • ??JavaScript 與 HTML 之間的交互是通過事件實現(xiàn)的驻谆。 ??事件卵凑,就是文檔或瀏覽器窗口中發(fā)生的一些特...
    霜天曉閱讀 3,473評論 1 11
  • 1.背景介紹 1.1什么是事件委托? 事件委托還有一個名字叫事件代理胜臊,JavaScript高級程序設(shè)計上講:事件委...
    我叫于搞吧閱讀 1,648評論 4 9
  • 補(bǔ)充: 錯誤版(但是可能能過) bug 在于勺卢,如果用戶點擊的是 li 里面的 span,就沒法觸發(fā) fn区端,這顯然不...
    Yixi_Li閱讀 327評論 0 0
  • 轉(zhuǎn)載:為了永久查看值漫,我都cv 過來,省的原作者刪除后找不到织盼。 起因:1杨何、這是前端面試的經(jīng)典題型,要去找工作的小伙伴...
    七色煙火閱讀 486評論 0 4