亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

js事件委托

js事件委托

一只斗牛犬 2018-10-17 17:11:35
<ul>         <li data-index='1'>1</li>         <li data-index='2'>2</li>         <li data-index='3'>3</li>     </ul>上面這樣可以把事件綁定在ul上,通過dataset來判斷點擊的是哪個li,來觸發不同的動作下面這種<ul>     <li data-index='1'>         <p>             <span>1</span>         </p>         <img/>     </li>     <li data-index='2'>         <p>             <span>2</span>         </p>         <img/>     </li>     <li data-index='3'>         <p>             <span>3</span>         </p>         <img/>     </li></ul>li 內有多個子元素,點擊 li 必然可能會點到子元素,如果子元素上不寫dataset等標記,如何判斷點了哪個li? 如果給li的子元素都寫上標記那肯定不對吧,太多了。這種情況怎么優化事件綁定的過程?
查看完整描述

1 回答

?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

事件被觸發的時候,事件對象event有兩個很關鍵屬性Event.targetEvent.currentTarget。 
它們倆的主要區別就在于,currentTarget該屬性總是指向被綁定事件的元素,而target則是指向觸發該事件的元素。

舉個例子,你把這個事件綁定在了最上級的<ul>標簽中,然后你現在點擊了下屬某個<span>標簽。 
之后就是事件冒泡,冒泡至<ul>標簽時,回調被觸發,此時Event.currentTarget指向的是當前<ul>的DOM對象,而Event.target則是指向你點擊的那個<span>的DOM對象。

所以在事件委托的處理中,只要在回調中對Event.target進行分析,就能知道觸發事件的元素是不是你需要的了。


查看完整回答
反對 回復 2018-11-15
  • 1 回答
  • 0 關注
  • 514 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號