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 相关文章推荐
向左滚动文字 js代码效果
Aug 17 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
Dec 19 Javascript
详解JavaScript的流程控制语句
Nov 30 Javascript
微信端开发--登录小程序步骤
Jan 11 Javascript
js实现模糊匹配功能
Feb 15 Javascript
高效的jQuery代码编写技巧总结
Feb 22 Javascript
js实现倒计时关键代码
May 05 Javascript
vue-resource 拦截器(interceptor)的使用详解
Jul 04 Javascript
Angular2关于@angular/cli默认端口号配置的问题
Jul 15 Javascript
原生JS+Canvas实现五子棋游戏
May 28 Javascript
vue 实现在函数中触发路由跳转的示例
Sep 01 Javascript
vue中npm包全局安装和局部安装过程
Sep 03 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
比较好用的PHP防注入漏洞过滤函数代码
2012/04/11 PHP
php实现scws中文分词搜索的方法
2015/12/25 PHP
总结的一些PHP开发中的tips(必看篇)
2017/03/24 PHP
基于Jquery实现的一个图片滚动切换
2012/06/21 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/20 Javascript
js图片预加载示例
2014/04/30 Javascript
JavaScript实现查找字符串中第一个不重复的字符
2014/12/29 Javascript
改变checkbox默认选中状态及取值的实现代码
2016/05/26 Javascript
全面了解JavaScript对象进阶
2016/07/19 Javascript
AngularJS实现进度条功能示例
2017/07/05 Javascript
史上最全JavaScript常用的简写技巧(推荐)
2017/08/17 Javascript
NodeJS安装图文教程
2018/04/19 NodeJs
原生JS封装_new函数实现new关键字的功能
2018/08/12 Javascript
页面内锚点定位及跳转方法总结(推荐)
2019/04/24 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
2020/08/03 Javascript
JavaScript实现串行请求的示例代码
2020/09/14 Javascript
[05:09]2016国际邀请赛中国区预选赛淘汰赛首日精彩回顾
2016/06/29 DOTA
[47:31]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.12
2020/12/16 DOTA
Python编程判断这天是这一年第几天的方法示例
2017/04/18 Python
python3.6实现学生信息管理系统
2019/02/21 Python
Python学习笔记之抓取某只基金历史净值数据实战案例
2019/06/03 Python
Ubuntu+python将nii图像保存成png格式
2019/07/18 Python
一篇文章搞懂python的转义字符及用法
2020/09/03 Python
使用Python提取文本中含有特定字符串的方法示例
2020/12/09 Python
Python中使用Selenium环境安装的方法步骤
2021/02/22 Python
ANINE BING官方网站:奢华的衣橱基本款和时尚永恒的单品
2019/11/26 全球购物
为什么使用接口?
2014/08/13 面试题
怎样创建、运行java程序
2014/08/01 面试题
异常和异常类的概念
2014/09/12 面试题
Oracle快照(snapshot)
2015/03/13 面试题
个人简历自我鉴定
2013/10/11 职场文书
电子商务专业学生的学习自我评价
2013/10/27 职场文书
机修工工作职责
2014/02/21 职场文书
会计系毕业求职信
2014/08/07 职场文书
合作协议书范本
2014/10/25 职场文书
行政后勤人员工作计划应该怎么写?
2019/08/16 职场文书