首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js事件委托

概念 事件委托也叫事件代理,事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型所有事件。...动态绑定: 新生dom节点如果用原来方式是无法绑定事件,用委托方式这方面可以轻松实现,保证父元素存在即可。...原理 利用事件冒泡,而冒泡指就是事件从向上传递事件,如果事件有相应函数绑定就会执行其绑定函数。...举例:ul下li元素有绑定事件,我们通过ul绑定委托之后,委托源码部分会在其执行函数内针对事件源进行筛选判定是否符合筛选条件(是否是li),然后针对获取属性或者内容,进行相关操作。...不适合:mouseover,mouseout, 没有:focus,blur jq写法 $(par).on("click",'child',fn) 拓展:事件监听 概述 事件监听:W3C规范定义了3个事件阶段

3.2K31

Js 事件委托事件代理)

一、概述 事件委托,又叫事件代理。事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型所有事件。 例子:有三个同事预计会在周一收到快递。...这里其实还有2层意思: 第一,现在委托前台同事是可以代为签收,即程序现有的dom节点是有事件; 第二,新员工也是可以被前台MM代为签收,即程序中新添加dom节点也是有事件。...在JavaScript,添加到页面上事件处理程序数量将直接关系到页面的整体运行性能,因为需要不断与dom节点进行交互,访问dom次数越多,引起浏览器重绘与重排次数也就越多,就会延长整个页面的交互就绪时间...,这就是为什么性能优化主要思想之一就是减少DOM操作原因;如果要用事件委托,就会将所有的操作放到js程序里面,与dom操作就只需要交互一次,这样就能大大减少与dom交互次数,提高性能; 每个函数都是一个对象...三、事件委托原理 事件委托利用事件冒泡原理,将事件绑定到父级元素上,当点击子元素时,通过事件冒泡将事件传递到父级元素。  四、总结: 那什么样事件可以用事件委托,什么样事件不可以用呢?

11.4K30
您找到你想要的搜索结果了吗?
是的
没有找到

js事件委托理解 转

今日看下拉列表时用到事件委托,特意在网上搜查了一些资料, http://www.cnblogs.com/liugang-vip/p/5616484.html  这篇文章写很详细,非常感谢作者。...事件委托也叫事件代理,事件委托就是利用事件冒泡,指定一个事件处理程序,就可以管理某一类型所有事件,何为事件冒泡呢,就是从事件最深节点开始,然后逐步向上传播事件,最大优点是提高性能 一般做法 <ul...oLi.innerHTML = 111*num; oUl.appendChild(oLi); }; } 适合用事件委托事件...不适合就有很多了,focus,blur之类,本身就没用冒泡特性,自然就不能用事件委托了。...我理解是:事件委托都是在外围div添加事件,当点击内部一个元素时,即使这个元素没有onclick事件,依然会从内到外执行onclick事件js中外部div 添加事件函数内 var ev = ev

98920

JS 事件绑定、事件监听、事件委托详细介绍 转

在JavaScript学习,我们经常会遇到JavaScript事件机制,例如,事件绑定、事件监听、事件委托事件代理)等。这些名词是什么意思呢,有什么作用呢?...在JavaScript,有三种常用绑定事件方法: 在DOM元素中直接绑定; 在JavaScript代码绑定; 绑定事件监听函数。...在实际代码 我们可能用到jQuerylive()、delegate()、bind()、on()等。 事件委托优点 1、提高JavaScript性能。...事件委托可以显著提高事件处理速度,减少内存占用。 实例分析JavaScript事件委托事件绑定 ,这篇文章写得还不错。...说明事件委托可以为新添加DOM元素动态添加事件

8.7K31

浅析 JavaScript 事件委托

有没有更好方法? 幸运是,如果我们使用“事件委托”模式的话,侦听多个元素上事件只需要一个事件侦听器。 事件委托使用事件传播机制细节。想要要了解事件委托工作原理,应该先了解什么是事件传播。...3.事件委托 让我们用事件委托来捕获多个按钮上点击: 。单击按钮时,父元素侦听器将会捕获冒泡事件(还记得前面所说事件传播吗?)。...使用事件委托需要 3 个步骤: 步骤 1:确定要监视事件元素父级元素 在上面的例子, 是按钮父元素。...现在,你可以看到事件委托模式好处:事件委托仅需要一个事件侦听器,而不必像本文最初那样将侦听器附加到每一个按钮上。

2.6K30

JS篇(007)-事件委托是什么

答案:利用事件冒泡原理,让自己所触发事件,让他父元素代替执行! 解析: 1、那什么样事件可以用事件委托,什么样事件不可以用呢?...- 适合用事件委托事件:click,mousedown,mouseup,keydown,keyup,keypress。...- 不适合就有很多了,举个例子,mousemove,每次都要计算它位置,非常不好把控,在不如说 focus,blur 之类,本身就没用冒泡特性,自然就不用事件委托了。...3、事件冒泡与事件委托对比 - 事件冒泡:box 内部无论是什么元素,点击后都会触发 box 点击事件 - 事件委托:可以对 box 内部元素进行筛选 4、事件委托怎么取索引?... aaaaaaaa 事件委托了 点击当前,如何获取 这个点击下标 cccccccc<

1.7K10

事件委托

事件委托也称事件代理,在jQuery里面就称为事件委派。 事件委托就是把事件监听放在祖先元素(如父元素、爷爷元素)上。...事件委托原理 不是给每个子节点单独设置事件监听器,而是事件监听器设置在其父节点上,然后利事件用冒泡原理影响设置每个子节点 事件委托作用 绑定事件越多,浏览器内存占用越大,严重影响性能 只操作一次DOM...}) target 与 currentTarget 区别: e.target: 用户操作元素 e.currentTarget: 程序员监听元素 比如上例,e.target 就是 li ,e.currentTarget...就是 ul 以上代码,并没有给每一个元素绑定事件,只是给父节点ul绑定事件,但是点击每一个li时,可以变换其样式。...image.png 事件委托优点: 1.减少事件注册,节省内存。 在table上代理所有tdclick事件。 在ul上代理所有liclick事件。 2.可以监听动态生成元素。

86120

C# 委托事件

C# 委托事件 文中代码在VS2005下通过,由于VS2003(.Net Framework 1.1)不支持隐式委托变量,所以如果在一个接受委托类型位置直接赋予方法名,在VS2003下会报错...例如:委托类型 委托实例 = new 委托类型(方法名); 欢迎浏览本文后续文章: C#委托事件(续) 引言 委托事件在 .Net Framework应用非常广泛,然而,较好地理解委托事件对很多接触...本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托事件由来、.Net Framework委托事件委托事件对Observer设计模式意义,对它们中间代码也做了讨论。...// 省略... .Net Framework委托事件 尽管上面的范例很好地完成了我们想要完成工作,但是我们不仅疑惑:为什么.Net Framework 事件模型和上面的不同?...在第二个稍微复杂点热水器范例,我向大家简要介绍了 Observer设计模式,并通过实现这个范例完成了该模式,随后讲述了.Net Framework中委托事件实现方式。

86020

委托事件-委托事件案例(三)

前言   这两天一直在想如何结合实际案例来结束委托事件讲解,下面讲解两个事例,用来加深对委托事件理解。 事例一(分页功能)   本场景是用来讲解使用,具体内容功能需自行填补实现。...用委托事件来实现分页功能通用。按上一节讲解逻辑处理,分为订阅者和发布者,一样可以先定义订阅者感兴趣对象,然后发布者,订阅者。再就是主程序调用。...public delegate void PageActionEventHandler(object sender, PageChangeEventArgs e); //定义委托类型事件...; } } } 谨记,事件基于委托,为委托提供了一种发布/订阅机制。理解发布订阅机制就会容易多了。一旦理清楚,发现好像也并不是很难。...很快能掌握。 总结   委托事件到这里就大结局了。一些列问题也解决了。心中疑惑也揭开了。下面我们就接着基础系列写其他了。

83320

事件委托

事件委托 1. 基本概念 事件委托,简单来说,就是把一个元素响应事件函数委托到另一个元素。...一般来讲,会把一个或者一组元素事件委托到它父层或者更外层元素上,真正绑定事件是外层元素,当事件响应到需要绑定元素上时,会通过事件冒泡机制从而触发它外层元素绑定事件上,然后在外层元素上去执行函数...前面提到 DOM 事件委托实现是利用事件冒泡机制,那么事件冒泡是什么呢? 2. 事件传播 事件传播分为三个阶段:「捕获阶段」、「目标阶段」、「冒泡阶段」。...所以事件委托可以减少大量内存消耗,节约效率。 动态绑定事件 比如上述例子列表项就几个,我们给每个列表项都绑定了事件。...如果用了事件委托就没有这种麻烦了,因为事件是绑定在父层,和目标元素增减是没有关系,执行到目标元素是在真正响应执行事件函数过程中去匹配

84720

JavaScript 事件委托 以及jQuery对事件委托支持

另外,如果在实际应用,很有可能同过js在 div1下动态生成p 元素,这时候,我们相应地还要添加事件处理函数,像这种动态添加动作很有可能分散在我们 应用很多个角落,这样动态添加处理函数将是一个非常蛋疼事儿...但是,事件委托也是有缺点: 如果现在dom 元素分为很多很多层,对于底层事件委托,有可能在事件冒泡过程,中途被某个节点 终止冒泡了,这样事件就传递不到上层,则委托就会失败了。...如果我们在js动态地给box1 增加子元素P,相应处理函数也会对其有效。...从元素删除先前用.live()绑定所有事件.(此方法与live正好完全相反。)如果不带参数,则所有绑定live事件都会被移除。...简化了dom节点更新时,相应事件更新 Allows to use innerHTML without additional processing. 缺点: 第一,要求事件在IE必须冒泡.

76560

浅谈JavaScript事件事件委托

事件处理程序为Web程序提供了系统交互,但是如果页面事件处理程序太多,则会影响页面的性能。每个函数都是对象,都会占用内存,内存对象越多,性能越差。...需要事先为DOM对象指定事件处理程序,导致访问DOM次数增多,会延迟整个页面的交互就绪时间。 事件委托   对事件处理程序过多解决方案是使用事件委托。...事件委托利用了事件冒泡,只指定一个事件处理程序,就可以管理某一类型所有事件。...移除事件处理程序   前文已经讲过事件添加以及事件移除。对于页面的事件处理程序太多,会影响页面的性能,除了使用事件委托之外,还可以将一些事件移除。...内存留有的一些过时用不到事件处理程序也是造成Web页面和内存性能主要问题。

99670

简单说 JavaScript事件委托(上)

https://blog.csdn.net/FE_dev/article/details/78821578 说明 这篇文章说JavaScript事件委托,这次先说一些比较基本知识。...事件委托 是什么 先来看看事件委托概念 事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型所有事件事件委托,你叫他 事件代理 也可以,都是一个意思。...事件委托 原理 要说事件委托原理,我们应该先明白事件冒泡 事件冒泡:从目标元素出发,向外层元素冒泡,最后到达顶层(window或document),依次执行绑定在其上事件。 我们来看段代码 <!...事件委托 局限 focus、blur 之类事件本身没有事件冒泡机制,所以无法委托; mousemove、mouseout 这样事件,虽然有事件冒泡,但是每次都要计算它位置,对性能消耗高,而且很麻烦...还有 JQuery事件委托 又是怎么做呢? 看这里 简单说 JavaScript事件委托(下)

56520

javaScript事件委托

事件委托:即是,一个事件本来是要绑定到某个元素上,然而却绑定到了该元素父(或祖先)元素上,利用事件冒泡原理,触发执行效果。 二、事件委托优点: 那为什么要使用事件委托?...事件委托有什么好处,以及使用时要注意什么? 事件委托大概有两个优点: 1、提高网页性能。 2、通过事件委托添加事件,对后期生成元素依然有效。 上面提到第二点如何理解呢?...举个例子:现在页面上有个 ul,ul 里有三个 li,通过循环给每个 li 添加点击事件,发现三个 li 到可以正常触发点击事件了,然后通过 js 代码在 ul 里插入(append)两个 li, 再试着点击所有...三、事件委托使用方法: 使用上面 ul 例子进行事件委托给每个 li 绑定事件,示例代码: var ul = document.querySelector("ul"); ul.onclick =...注意:事件代理可能带来隐患,当页面非常复杂情况下,非常容易引起混乱,特别是当多种(个)事件通过事件委托绑定到同一个元素上时。

1K50

jQuery事件委托

在jQuery事件委托是一种优化事件处理技术,它利用事件冒泡机制,将事件处理程序绑定到一个父级元素上,从而减少事件处理函数数量,并实现对动态添加子元素事件处理。什么是事件委托?...通过事件委托,我们可以避免为每个子元素都绑定事件处理程序,而是将事件处理集中在父级元素上,从而减少了事件处理函数数量,提高了性能和代码可维护性。为什么使用事件委托?...处理动态添加元素:当页面上元素是通过动态方式添加到文档时,事件委托可以自动为这些新添加元素绑定事件处理程序,而无需手动重新绑定。...提高性能:由于事件委托事件处理程序绑定到父级元素上,避免了为每个子元素都绑定事件处理程序开销,从而提高了性能。如何使用事件委托?在jQuery,我们可以使用on()方法结合选择器来实现事件委托。...事件委托适用于以下场景:当页面上元素是通过动态方式添加到文档时。当需要为多个子元素绑定相同事件处理程序时。当需要减少事件处理函数数量,提高性能和可维护性时。

1.1K10

JavaScript事件对象与事件委托

事件对象 包含事件相关信息,如鼠标、时间、触发DOM对象等  js默认将事件对象封装好,并自动以参数形式,传递给事件处理函数第1个参数,如下: document.getElementsByTagName...("div")[0].onclick = function(e){   e = window.event || e; //兼容IE低版本(事件对象绑定在windowevent上)   console.log...(e);//这里e就是事件对象 } 事件属性和方法 type:获取事件类型(click、mouseover等等) target:获取发生所在元素(在低版本IE下用srcElement属性) stopPropagation...() 阻止事件冒泡(IE用cancelBubble属性为false阻止冒泡) preventDefault() 阻止事件默认行为(IE用returnValue属性为false阻止默认行为) 事件委托 利用...target属性,获取时间发生所在对象,避免全体子元素加事件,对比如下:  var tbs=document.getElementsByTagName("td"); for(var i=0;i

87750
领券