美文网首页
事件代理

事件代理

作者: 安石0 | 来源:发表于2017-06-12 23:54 被阅读0次

事件代理(事件委托)利用了事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。

事件委托就是利用冒泡的原理,把事件加到父元素或祖先元素上,触发执行效果。

优点

1、提高JavaScript性能。事件委托可以显著的提高事件的处理速度,减少内存的占用。

document.addEventListener("click",function(event){vartarget = event.target;if(target == item1){

alert("hello item1");

}elseif(target == item2){

alert("hello item2");

}elseif(target == item3){

alert("hello item3");

}

})

在JavaScript中,添加到页面上的事件处理程序数量将直接关系到页面的整体运行性能,因为需要不断的与dom节点进行交互,访问dom的次数越多,引起浏览器重绘与重排的次数也就越多,就会延长整个页面的交互就绪时间;如果使用事件代理,就会将所有的操作放到js程序里面,与dom的操作就只需要交互一次,这样就能大大的减少与dom的交互次数,提高性能。
varitem1 =document.getElementById("item1");varitem2 =document.getElementById("item2");varitem3 =document.getElementById("item3");document.addEventListener("click",function(event){vartarget = event.target;if(target == item1){ alert("hello item1"); }elseif(target == item2){ alert("hello item2"); }elseif(target == item3){ alert("hello item3"); }})

原来需要的代码:

varitem1 =document.getElementById("item1");varitem2 =document.getElementById("item2");varitem3 =document.getElementById("item3");

item1.onclick =function(){

alert("hello item1");

}

item2.onclick =function(){

alert("hello item2");

}

item3.onclick =function(){

alert("hello item3");

}

2、动态的添加DOM元素,不需要因为元素的改动而修改事件绑定。

varlist =document.getElementById("list");document.addEventListener("click",function(event){vartarget = event.target;if(target.nodeName =="LI"){

alert(target.innerHTML);

}

})varnode=document.createElement("li");vartextnode=document.createTextNode("item4");

node.appendChild(textnode);

list.appendChild(node);

原来需要的代码

varlist =document.getElementById("list");varitem = list.getElementsByTagName("li");for(vari=0;i

(function(i){

item[i].onclick =function(){

alert(item[i].innerHTML);

}

})(i)

}varnode=document.createElement("li");vartextnode=document.createTextNode("item4");

node.appendChild(textnode);

list.appendChild(node);

相关文章

  • 第二十天web前端面试题

    1,什么是事件代理且描述事件代理的原理及为什么要用事件代理? 事件委托也叫事件代理。利用事件冒泡,让自己的触发的事...

  • 概念

    事件委托,事件代理 事件代理又称之为事件委托。是JavaScript中常用绑定事件的常用技巧。顾名思义,“事件代理...

  • Block和代理协议

    代理协议: 1.要确定谁是代理对象,谁是被代理对象。 事件在哪里产生,谁就被代理对象。 事件在哪里响应,谁就是代理...

  • dom事件代理

    实现一个js事件代理的模块,帮助用户快速实现事件代理。

  • 【事件代理】 动态数据列表里,如何监听每条数据的点击?

    前言 在问题前,需要先清楚关于事件冒泡、事件代理的定义 事件冒泡 事件代理 原理: 事件冒泡机制实现方式:可用ad...

  • 前端面试题套路

    套路一:事件代理 1、事件代理基本原理 事件代理的基本原理简单来说就是将子元素的事件通过冒泡的形式交由父元素来执行...

  • 事件代理

    1.问题描述 双击文章栏目中的单词可以添加到生词栏目中,我们可以给每个单词添加一个dblclick事件,那么这里就...

  • 事件代理

    javascript和jQuery的事件代理不同写法 首先思考一下:为什么我们要用到事件代理??? 举个栗子父元素...

  • 事件代理

    简单情况的事件代理写法 假设是这个么结构,然后现在要监听的是 父容器 ul : 那么我们的监听代码可以这么写: 点...

  • 事件代理

    事件代理(事件委托):利用了事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。 事件委托就是利用冒泡...

网友评论

      本文标题:事件代理

      本文链接:https://www.haomeiwen.com/subject/envrqxtx.html