美文网首页
JQuery事件委托

JQuery事件委托

作者: 你为什么无理取闹 | 来源:发表于2018-06-28 19:04 被阅读0次

JavaScript(jQuery)中的事件委托

一:什么是事件委托?

    事件委托是利用事件冒泡,只指定一个事件处理程序来管理某一类型的所有事件。

二:为什么要用事件委托?

    1.在JavaScript中添加到页面上的事件处理程序的个数直接关系到页面的整体运行性能。为什么呢?因为,每个事件处理函数都是对象,对象会占用内存,内存中的对象越多,性能就越差。此外,必须事先指定所有的事件处理程序而导致的DOM访问次数,会延迟整个页面的交互就绪时间。

    2.对有很多个数据的表格以及很长的列表逐个添加事件,简直就是噩梦。所以事件委托,能极大地提高页面的运行性能,减少开发人员的工作量。

三:JavaScript中的例子

      我们以下面的HTML代码为例,用事件委托的方式实现当鼠标单击某个li元素的时候,li元素的背景变成红色。

 下面是JavaScript代码:

单击列表4,实现效果:



 三:jQuery中的例子


    jQuery中的事件委托方式比较丰富,就以同样的例子来说:


   1、用on方法,代码如下:

1

2.用delegate()方法,代码如下:

on()方法和delegate()方法对于事件委托的写法很像。并且执行事件委托的时候只有子元素(本文中的li)会触发事件,而代为执行的父元素(本文中为ul)不会触发事件,所以我们不需要盘判断触发事件的元素节点名,这一点明显优于原生的JavaScript。

3.用bind()方法,代码如下:

bind()方法同原生的JavaScript实现方法一样,当父元素代子元素执行事件时,父元素也会触发事件,所以我们需要判断一下触发事件的元素名。此外,用bind()方法给元素绑定事件的时候要注意,它只能给已经存在DOM元素添加事件,不能给未来存在DOM

元素添加添加事件。如果要频繁地添加DOM元素,并且给新添加的DOM元素绑定事件的话,用live(),delegate(),on()等方法。鉴于jQuery从1.7之后就不推荐live()和delegate()方法了,所以大家还是使用on()方法吧。

相关文章

  • JQuery事件委托

    JavaScript(jQuery)中的事件委托 一:什么是事件委托? 事件委托是利用事件冒泡,只指定一个事件...

  • 事件冒泡 委托 节点 ajax jsonp

    事件冒泡 事件委托 节点操作 ajax ajax jQuery-jsonp

  • jQuery 事件委托

    html js

  • jQuery 事件委托

    我们在绑定事件时(比如点击事件),只能绑定在HTML页面已有的元素上(比如下方html里的 上),当使用jQuer...

  • jQuery事件委托

    什么是事件委托? 请别人帮忙做事情,然后将做完的结果反馈给我们 为什么使用事件委托 使用场景:即使一开始对所有li...

  • js事件委托

    事件委托的使用地点 事件委托的原理 jQuery中封装耳朵事件委托 问题 将ajax请求回来的数据动态的拼接到ht...

  • 前端 - 事件委托

    事件委托,就是把事件委托给别人,让别人来帮自己完成。 注:本文 JavaScript 代码部分使用 jQuery ...

  • 2018-12-10

    jQuery其他事件 绑定事件bind 自定义事件 事件冒泡 定时器弹框 事件委托

  • jQuery事件委托和JS事件委托

    jQuery事件委托没得说,直接用on的方式在事件类型参数的后边加一个真正触发事件的对象即可,同时jQuery提供...

  • javascript事件委托和jquery事件委托

    元旦过后,新年第一篇。初衷:很多的面试都会涉及到事件委托,前前后后也看过好多博文,写的都很不错,写的各有千秋,自己...

网友评论

      本文标题:JQuery事件委托

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