首页 > 编程知识 正文

js鼠标监听事件及其功能实现,事件委托在什么情况下使用

时间:2023-05-05 08:42:36 阅读:170854 作者:2258

0 .事件请求什么是事件请求:利用事件气泡的特性,将需要注册到子元素的处理事件注册到父元素,当单击子元素时,发现自身没有与父元素相对应的事件并进行响应。 这样做的好处如下。

减少DOM操作,提高性能。 可以随时添加子元素,并且添加的子元素将自动具有相应的处理事件。 1 .事件委托原理事件委托是利用事件冒泡原理实现的,什么是事件冒泡? 事件是从最深的节点开始,逐渐向上传播事件。

举个例子,页面上有这样的节点树。 divullia; 例如,如果将单击事件添加到最里面的a,则此事件将一个接一个地向外执行,执行顺序为aliuldiv。 如果有这样的机制,向最外面的div添加单击事件时,里面的ul、li、a在单击事件时会向最外面的div冒泡,因此会触发。 这就是事件的委托,委托那些父母执行事件

2 .案件委托的实现一个案例实现案件委托。

案例:批量添加事件监听。 使用JavaScript实现:单击哪个li,哪个li元素的背景会变红。

结构层样式的层代码:

样式* { margin : 0; padding: 0; } ul { float: left; width: 800px; 边距-顶级: 50px; } ul li { list-style: none; 浮动:左; width: 200px; height: 200px; border: 1px solid #000; 边距-右: 20px; } ulli : first-child { margin-left :20 px; (/stylebodyulid=' list ' li1/Lili2/Lili3/Li/ul/body 2.1方法1 )如果不使用循环进行事件请求,而是使用for循环添加单击事件,则会导致内存消耗

var olist=document.getelementbyid (' list ); var lis=olist.getelementsbytagname (' Li ); for(varI=0; i lis.length; I ) { lis[i].onclick=function () this.style.background color=' red '; }} 2.2方法2 :通过事件使用事件进行请求。

var olist=document.getelementbyid (' list ); olist.onclick=function(e ) e.target.style.background color=' red '; }在此案例中,e.target表示用户实际单击的元素。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。