jQuery实现在新增加的元素上添加事件方法案例分析


Posted in Javascript onFebruary 09, 2017

本文实例讲述了jQuery实现在新增加的元素上添加事件方法。分享给大家供大家参考,具体如下:

最近项目组需要在新增的元素上增加时间,有人说用live方法后来使用的时候发现jQuery没有该方法(1.7以上就没了)替换为on

除了jquery api官方的例子外还有以下的例子可以在新增的元素上添加事件

$(document).on("click",'#lyysb a',function(){
  if(!$(this).hasClass('cur')){
    $(this).addClass('cur');
  } else {
    $(this).removeClass('cur');
  }
});

但是把事件绑定在docunmet就和原来的live方法没有区别了。原先的live()方法,处理函数是默认绑定在document对象上不能变的,如果DOM嵌套结构很深,事件冒泡通过大量祖先元素会导致较大的性能损失。而使用.on()方法,事件只会绑定到$()函数的选择符表达式匹配的元素上,因此可以精确地定位到页面中的一部分,而事件冒泡的开销也可以减少。

<div id="zkdiv">
  <input type="button" value="展开" id="zk" class="zk"/> <br>
</div>

例如我会在zkdiv中动态添加多个class="zk"的dom节点,也想对动态增加的节点绑定相同的事件则可以通过以下代码实现

//展开按钮点击触发事件
$("#zkdiv").on("click",".zk",function(){
  console.log("on 点击一次");
});
var html2 = "<input type='button' class='zk' value='新生成的展开' />";
$("#zkdiv").append(html2);

这样一来处理函数就绑定到#zkdiv的选择器上去了,事件冒泡导致的性能损失会大大降低(使用该方法时要确保.on前面的选择器能选择到对象 否则不起作用)

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
SeaJS入门教程系列之使用SeaJS(二)
Mar 03 Javascript
node.js中的events.emitter.listeners方法使用说明
Dec 10 Javascript
js通过iframe加载外部网页的实现代码
Apr 05 Javascript
jquery实现动态改变div宽度和高度
May 08 Javascript
JS从一组数据中找到指定的单条数据的方法
Jun 02 Javascript
jQuery获取多种input值的简单实现方法
Jun 20 Javascript
Jquery实时监听input value的实例
Jan 26 Javascript
JS日程管理插件FullCalendar简单实例
Feb 07 Javascript
原生js实现放大镜特效
Mar 08 Javascript
JS实现汉字与Unicode码相互转换的方法详解
Apr 28 Javascript
vue使用echarts图表的详细方法
Oct 22 Javascript
vue-cli3自动消除console.log()的调试信息方式
Oct 21 Javascript
jquery滚动条插件slimScroll使用方法
Feb 09 #Javascript
JS回调函数简单用法示例
Feb 09 #Javascript
Bootstrap列表组学习使用
Feb 09 #Javascript
jQuery实现获取隐藏div高度的方法示例
Feb 09 #Javascript
Bootstrap进度条学习使用
Feb 09 #Javascript
详解浏览器渲染页面过程
Feb 09 #Javascript
JavaScript 函数节流详解及方法总结
Feb 09 #Javascript
You might like
DC《神奇女侠2》因疫情推迟上映 温子仁新恐怖片《恶性》撤档
2020/04/09 欧美动漫
PHP Memcached + APC + 文件缓存封装实现代码
2010/03/11 PHP
基于jquery实现的上传图片及图片大小验证、图片预览效果代码
2011/04/12 Javascript
JavaScript中的onerror事件概述及使用
2013/04/01 Javascript
文件编码导致jquery失效的解决方法
2013/06/26 Javascript
JQuery设置获取下拉菜单某个选项的值(比较全)
2014/08/05 Javascript
AngularJS 作用域详解及示例代码
2016/08/17 Javascript
解析javascript图片懒加载与预加载的分析总结
2016/10/27 Javascript
微信小程序 实现tabs选项卡效果实例代码
2016/10/31 Javascript
jquery mobile实现可折叠的导航按钮
2017/03/11 Javascript
JavaScript多线程运行库Nexus.js详解
2017/12/22 Javascript
微信小程序 如何引入外部字体库iconfont的图标
2018/01/31 Javascript
vue-router路由模式详解(小结)
2019/08/26 Javascript
javascript删除数组元素的七个方法示例
2019/09/09 Javascript
从零学python系列之教你如何根据图片生成字符画
2014/05/23 Python
Python使用文件锁实现进程间同步功能【基于fcntl模块】
2017/10/16 Python
python 通过xml获取测试节点和属性的实例
2018/03/31 Python
Python 文本文件内容批量抽取实例
2018/12/10 Python
Python判断有效的数独算法示例
2019/02/23 Python
python的set处理二维数组转一维数组的方法示例
2019/05/31 Python
Django项目使用CircleCI的方法示例
2019/07/14 Python
python3+django2开发一个简单的人员管理系统过程详解
2019/07/23 Python
Python 爬虫性能相关总结
2020/08/03 Python
Python创建简单的神经网络实例讲解
2021/01/04 Python
详解python第三方库的安装、PyInstaller库、random库
2021/03/03 Python
银行爱岗敬业演讲稿
2014/05/05 职场文书
党建工作经验交流材料
2014/05/25 职场文书
软件售后服务方案
2014/05/29 职场文书
司法工作人员群众路线对照检查材料思想汇报
2014/09/30 职场文书
2014年小学图书室工作总结
2014/12/09 职场文书
护理实习生带教计划
2015/01/16 职场文书
2014年底个人工作总结
2015/03/10 职场文书
背起爸爸上学观后感
2015/06/08 职场文书
python爬虫之爬取笔趣阁小说
2021/04/22 Python
新手入门Jvm-- JVM对象创建与内存分配机制
2021/06/18 Java/Android
sql server偶发出现死锁的解决方法
2022/04/10 SQL Server