事件委托是通过事件冒泡的原理,利用父级去触发子级的事件。
如下html,如果不用事件委托,将每一个li都去添加click事件监听,非常麻烦。
另外就是如果通过js动态创建的子节点,需要重新绑定事件。
而利用事件委托的话,只需要给父级绑定一个事件监听,即可让每个li都绑定上相应的事件
eg:
<ul id="wrap"><li>item1</li><li>item2</li><li>item3</li><li>item4</li><li>item5</li>
</ul>$(function(){// 普通事件$('li').click(function(){$(this).css('background', '#D4DFE6');});// 动态添加DOM节点$('#addBtn').click(function(){$('#wrap').append( $('<li>item'+ ($('li').length + 1) +'</li>') );});/*** 事件委托*/// jQuery 1.9已废弃/*$('li').live('click', function(){$(this).css('background', '#D4DFE6');});*/// jQuery的delegate写法$('#wrap').delegate('li', 'click', function(ev){// this 指向委托的对象 li$(this).css('background', '#D4DFE6');// 找到父级 ul#wrap$(ev.delegateTarget).css('border', '2px solid #f00');});// jQuery的on的写法$('#wrap').on('click', 'li', function(ev) {// this 指向委托的对象 li$(this).css('background', '#D4DFE6');// 找到父级 ul#wrap$(ev.delegateTarget).css('border', '2px solid #f00');})// js原生写法var _wrap = document.getElementById('wrap');_wrap.addEventListener('click', function(ev){var ev = ev || event;if( ev.target.nodeName == 'LI' ) {ev.target.style.background = '#8EC0E4';console.log( ev.target.innerHTML );}// 找到父级 ul#wrapthis.style.border = '2px solid #f00';});});

转载于:https://www.cnblogs.com/ldlx-mars/p/6936273.html

jQuery事件委托相关推荐

  1. jquery事件委托_jQuery事件委托

    jquery事件委托 jQuery使JavaScript中的事件处理变得容易. 但是,定义的事件处理程序越多,使用的内存就越多,最终可能会降低性能并导致UI变慢. 本文探讨事件委托如何帮助防止这种情况 ...

  2. jquery 列表hover效果 ,css :hover ,jquery 事件委托,jquery hover()方法

    jquery 列表hover效果 <ul class="list"><li class="item"><span>1< ...

  3. html5 点击事件委托,jquery事件委托

    一,.on( events [, selector ] [, data ], handler(eventObject) )// .on( events [, selector ] [, data ] ...

  4. Jquery事件委托之Safari

    什么是事件委托 事件委托是Jquery中一种事件绑定的方式,不同于常见的事件绑定方式将事件绑定在目标元素上,而是将事件绑定在父级元素上通过事件冒泡来执行绑定函数. //常见的事件绑定(Jquery) ...

  5. js原生事件委托写法,jquery事件委托写法

    什么是事件委托: 事件委托--给父元素绑定事件,用来监听子元素的冒泡事件,并找到是哪个子元素的事件.(不理解冒泡的可以去百度下) 定义: 利用事件冒泡处理动态元素事件绑定的方法,专业术语叫事件委托. ...

  6. 09 jQuery事件委托小米购物车

    小米购物车 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF- ...

  7. jquery事件委托off与on连用无效的问题

    问题引出: 事件委托是一种非常常用的事件解决方案,也是很多人推荐作为首选的解决方案(事件委托有什么好处,为何推荐,跟本文要说的内容无关,可自行百度).我们在事件处理的时候可能会这么用$selector ...

  8. 原生JS及jQuery中事件委托的写法

    在绑定节点事件处理程序时遇到的问题: 每个 函数都是对象,都会占用内存:内存中的对象越多,性能就越差. 其次,必须事先指定所有事件处理程 序而导致的 DOM访问次数,会延迟整个页面的交互就绪时间. 采 ...

  9. Mr.J-- jQuery学习笔记(十一)--事件委托

    jQuery事件委托 事件委托是利用事件冒泡,只指定一个事件处理程序来管理某一类型的所有事件. 为什么要用事件委托? 1.在JavaScript中添加到页面上的事件处理程序的个数直接关系到页面的整体运 ...

  10. JQuery --- 第三期 (jQuery事件相关)

    个人学习笔记 1.JQuery事件绑定 <!DOCTYPE html> <html lang="en"> <head><meta char ...

最新文章

  1. mysql导入sql文件限制,Mysql导入大容量SQL文件数据有关问题
  2. dataframe的multiIndex在次级index上做筛选
  3. 如何查看linux系统的密码是多少,如何在Linux系统查询SAM密码
  4. 【AI视野·今日NLP 自然语言处理论文速览 第九期】Thu, 17 Jun 2021
  5. Linux下gcc/g++、make和cmake的区别
  6. qt 对话框位置如何确定_便利店如何确定收银台位置?
  7. 命令解析optparse
  8. 伍德里奇计量经济学导论之计算机操作题的R语言实现(虚拟变量)
  9. c++如何侦测鼠标点击?
  10. comsol3.5 软件下载
  11. 让你搞懂 administrator最高权限
  12. 5A成绩通过PMP,备考经验总结——姜飞
  13. Redis学习笔记(五)——持久化及redis.conf配置文件叙述
  14. 深入理解Spring两大特性:IoC和AOP
  15. kinect使用手册
  16. NTFS下的USN日志文件
  17. Chrome 技术篇-未安装的crx插件源码查看,crx类型文件解压方法
  18. “希希敬敬对”队软件工程第九次作业-beta冲刺第二次随笔
  19. 绘制森林资源图的工具介绍
  20. postgresql锁表如何处理

热门文章

  1. for(;;)和while(true)的区别
  2. mysql count视频教程_mysql count提高方法总结
  3. hooks taro 下拉刷新_Hooks
  4. 重磅!吴恩达新书《机器学习训练秘籍》中文版来了(附PDF下载)
  5. 用Python爬了下知乎上的高颜值小姐姐后,我兴奋的睡不着觉!
  6. 耗时一周,我用Python爬取全国各地大学校花(高清照片和个人信息)
  7. vlc_for_android(基于git-3.0.0)快速集成并播放电视节目直播
  8. mockito 外部接口_原创 |使用JUnit、AssertJ和Mockito编写单元测试和实践TDD (五)第一个单元测试...
  9. 大脑构造图与功能解析_EXCEL函数中Indirect才是构造函数之王,其他函数只能靠边站...
  10. broker druid 查询_即时查询工具| Druid