上篇分享提出的这个事件委托,今天让我来详细说明下把。

先看一段例子:

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>Examples</title> <meta name="description" content=""> <meta name="keywords" content=""> <link href="" rel="stylesheet"> <script src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script> </head> <body> <div class="tab" >     <ul class="wrapper" >      <li class="detail">1</li>        <li class="detail">2</li>        <li class="detail">3</li>        <li class="detail">4</li>        <li class="detail">5</li>        <li class="detail">6</li>        <li class="detail">7</li>        <li class="detail">8</li>        <li class="detail">9</li>        <li class="detail">10</li>     </ul>    </div>     <script type="text/javascript">      $("document").ready(function(){           /**事件委托**/          $(".wrapper").on("click",function(e){               console.log(e.target);              console.log(e.target.nodeName);                 if(e.target.nodeName=="LI"){                    alert("ok")               }           })          /**普通监听**/          $(".detail").on("click",function(e){                console.log(e);             })      })    </script> </body> </html>

这里我给出了一个无序列表,我们想在点击li后输出一个内容。

对于我们大部分新手来说可能就直接在li上做事件注册。但是假如这个li有成千上万个的话,那个效率可想而知。

那么解决办法就是利用上篇说的事件冒泡。在li最外层的ul上增加事件监听。因为点击内部li后就会事件会冒泡到最外层。

而我们要做的就是判断下这个事件的目标对象是哪个。

我这里采用了判断节点的方法,当然同学们也可以定义好类名,用jq的hasClass();方法判断目标对象。这样一来我们的事件效率就会很高了。

转载于:https://www.cnblogs.com/wq123/p/4396425.html

前端-【学习心得】-事件委托方法相关推荐

  1. html表单的课后心得体会,web前端学习心得体会范文

    <web前端学习心得体会范文>由会员分享,可在线阅读,更多相关<web前端学习心得体会范文(2页珍藏版)>请在装配图网上搜索. 1.web前端学习心得体会范文web前端学习心得 ...

  2. 总结一年来的前端学习心得

    到今天,前端学习刚好满一年.我也顺利从非计算机专业转到前端.对于前端学习,自己也是摸着石头过河,中间也有过困惑和迷茫.本文主要讲述自己一年来对于前端学习的心得体会,希望能对学习前端的人提供一些帮助. ...

  3. 2018年前端学习心得——总结篇

    学习 2018年,确定了人生的职业规划,开启了前端之路.基础不存在的,本科所了解的HTML标签和简单CSS样式早就不存在了.下面简单总结一下这一年的收获与进步. 自我学习(3个月):前端基础知识,在图 ...

  4. 前端学习 FormData 对象的方法

    1. 常用的FormData对象方法 获取表单对象中属性的值 formData.get('key'); 设置表单对象中属性的值 formData.set('key', 'value'); 删除表单对象 ...

  5. [学习心得]Response.Write()方法响应导致页面字体变大的解决方法

    我们来分析一下ASP.NET中用Response.Write()方法响应导致页面字体变大的问题 比方说在页面里面有个LinkButton,要点击以后要打开新窗口,而且新窗口的URL是根据用户选择结果动 ...

  6. 事件委托的概念和原理

    事件委托优点 减少DOM操作的,减少浏览器的重绘(repaint)和重排(reflow),从而提高性能: 减少内存空间的占用率,因为每一个函数都是一个对象,对象越多,内存占有率就越大,自然性能就越差, ...

  7. JQ 为未来元素添加事件处理器—事件委托

    随着DOM结构的复杂化和Ajax等动态脚本技术的运用,有了较多的动态添加进来的元素,直接用JQ添加click事件会发现新添加进来的元素并不能直接选取到,在这里就需要用到事件委托方法,JQ为事件委托提供 ...

  8. 13前端学习之WebAPI(三):节点操作、事件高级、DOM事件流、事件委托冒泡

    文章目录 一.节点操作: 1. 删除节点: 1.2. 案例:删除留言 2. 赋值(克隆)节点: 3. 案例:动态生成表格: 3.1 案例分析: 3.2 实现: 4. 创建元素的三种方式: 4.1 区别 ...

  9. 前端和后端的英文_80后老阿姨转行做前端的学习心得,深情交流!

    一.Why choose front-end 2012.07毕业后,进了一家游戏公司做运营策划,写过营销方案.做过内容编辑.知道广告投放和换量,还得兼职产品经理画原型. 每天9.30-23.00以后, ...

最新文章

  1. Quality Certificate Check at Goods Receipt
  2. hyperledge环境安装
  3. Linux服务器---安装bind
  4. R开发(part10)--基于S3的面向对象编程
  5. 2014编程之美初赛第二场
  6. Python多任务——线程
  7. 与MQ通讯的完整JAVA程序
  8. Android 系统性能优化(24)--布局优化
  9. 多点触摸与单点触摸接口主要区别【转】
  10. t检验自由度的意义_t检验的原理是什么?有什么意义?谢谢
  11. js 開始时间,当前时间,结束时间的比較
  12. 软件测试人员工作计划怎么写,软件测试个人工作计划.docx
  13. ccc计算机比赛如何报名,2020年加拿大计算机竞赛报名即将截止!
  14. keil中下载按钮和调试按钮灰掉了
  15. #USB加密狗信息安全与USB_Host 硬件读写加密狗
  16. 夏普红外测距模块使用笔记
  17. 拆解一个老式电感电容表
  18. 《数解道法》(一)前言
  19. 【笔记整理】网络攻防技术
  20. vc2005 应用程序正常初始化(0XC0150002)失败

热门文章

  1. C#初学的一些注意点
  2. php时间戳源码,php格式化时间戳
  3. mysql不同的类的个数_Mysql-SQL优化-统计某种类型的个数_MySQL
  4. 国产plc做modbus从站_Modbus-RTU通信
  5. java如何关闭线程池_如何优雅的关闭Java线程池
  6. Jdk并发线程处理CountDownLatch、CyclicBarrier、Semaphore
  7. java环境变量win8_win8java环境变量设置
  8. 计算机竞赛女生,我校组队参加 CCPC-WFINAL中国大学生程序设计竞赛女生专场
  9. php静态stitac,php静态static介绍
  10. linux更新驱动脚本,Linux 第一个驱动程序编写