为了账号安全,请及时绑定邮箱和手机立即绑定

事件委托应该委托到哪一级?

事件委托一般委托给哪个祖先元素比较好?

正在回答

4 回答

用js源码来分析 事件委托 是这样的;

parentElement.click=function(e){      //parentElement委托的父级(点击时执行函数)

var eTarget=e.target || e.srcElement  //获取点击的事件目标

if(eTarget.nodeName.toLowerCase=="a"){ //这里的a就是委托的对象;判断如果是a就执行

 //在点击对象时会往上冒泡,判断目标事件是不是a元素,直到冒到委托的父级元素;

//因此尽可能的缩小委托的父级范围,这个可以很大程度的提高 js的性能

//个人的一点理解,希望能帮到你

}

}

5 回复 有任何疑惑可以回复我~
#1

Nevermore3182578 提问者

这个解释比较好理解,多谢
2016-09-22 回复 有任何疑惑可以回复我~
#2

快乐崇拜tager 回复 Nevermore3182578 提问者

呵呵,都加油啦!
2016-09-22 回复 有任何疑惑可以回复我~
#3

快乐崇拜tager 回复 Nevermore3182578 提问者

委托的父级可以理解为是触发事件的范围; 如果以body或最高级作为委托的父级,由于冒泡的原理,所以不管你点在页面的哪个位置都会执行点击事件(每次点击都会执行并判断是不是委托元素); 如果是鼠标移动事件那不管移到页面哪里都会执行函数并判断; 因此还是要缩小父级的委托范围;
2016-09-23 回复 有任何疑惑可以回复我~

事件冒泡、事件源、加判断 构成事件委托!

2 回复 有任何疑惑可以回复我~

当然是最近的祖先元素。

0 回复 有任何疑惑可以回复我~

事件委托就是利用事件冒泡原理,把处理任务委托给父元素或者祖先元素(通常用父元素),我们通过目标对象来判断事件源,并执行事件处理。


0 回复 有任何疑惑可以回复我~
#1

Nevermore3182578 提问者

这个概念我知道,但是比如给一个div添加点击事件,是委托给div的父级,还是body,或者是document?
2016-09-22 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

事件委托应该委托到哪一级?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信