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实现点击链接取消跳转效果的方法
Jan 24 Javascript
JavaScript中的分号插入机制详细介绍
Feb 11 Javascript
jQuery动态星级评分效果实现方法
Aug 06 Javascript
javascript字符串替换函数如何一次性全部替换掉
Oct 30 Javascript
ES6记录异步函数的执行时间详解
Aug 31 Javascript
js Canvas实现的日历时钟案例分享
Dec 25 Javascript
vue中$refs的用法及作用详解
Apr 24 Javascript
jquery获取select选中值的文本,并赋值给另一个输入框的方法
Aug 21 jQuery
vue中使用cookies和crypto-js实现记住密码和加密的方法
Oct 18 Javascript
详解Vue源码之数据的代理访问
Dec 11 Javascript
关于layui toolbar和template的结合使用方法
Sep 19 Javascript
JS算法教程之字符串去重与字符串反转
Dec 15 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
取得单条网站评论以数组形式进行输出
2014/07/28 PHP
php之curl实现http与https请求的方法
2014/10/21 PHP
php在数据库抽象层简单使用PDO的方法
2015/11/03 PHP
PHP笛卡尔积实现算法示例
2018/07/30 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
2020/04/13 PHP
javascript 二分法(数组array)
2010/04/24 Javascript
jQuery操作Select选择的Text和Value(获取/设置/添加/删除)
2013/03/06 Javascript
基于jquery的网站幻灯片切换效果焦点图代码
2013/09/15 Javascript
更快的异步执行(setTimeout多浏览器)
2014/08/12 Javascript
浅谈jQuery为哪般去掉了浏览器检测
2016/08/29 Javascript
简单理解vue中track-by属性
2016/10/26 Javascript
Jquery Easyui菜单组件Menu使用详解(15)
2016/12/18 Javascript
微信小程序开发之toast等弹框提示使用教程
2017/06/08 Javascript
bootstrap table实现x-editable的行单元格编辑及解决数据Empty和支持多样式问题
2017/08/10 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
2017/12/27 Javascript
javascript实现自由编辑图片代码详解
2019/06/21 Javascript
vue router总结 $router和$route及router与 router与route区别
2019/07/05 Javascript
微信小程序事件流原理解析
2019/11/27 Javascript
Vue学习之axios的使用方法实例分析
2020/01/06 Javascript
原生js实现密码强度验证功能
2020/03/18 Javascript
微信小程序换肤功能实现代码(思路详解)
2020/08/25 Javascript
vue video和vue-video-player实现视频铺满教程
2020/10/30 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
[00:35]DOTA2上海特级锦标赛 VP战队宣传片
2016/03/04 DOTA
Python中用pycurl监控http响应时间脚本分享
2015/02/02 Python
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
python去除扩展名的实例讲解
2018/04/23 Python
Python3内置模块之json编解码方法小结【推荐】
2020/12/09 Python
python集合是否可变总结
2019/06/20 Python
Python爬虫学习之翻译小程序
2019/07/30 Python
Python如何读写二进制数组数据
2020/08/01 Python
Python实现LR1文法的完整实例代码
2020/10/25 Python
斯福泰克软件测试面试题
2015/02/16 面试题
学校法制宣传日活动总结
2014/11/01 职场文书
心灵点滴观后感
2015/06/02 职场文书
HTML5页面音频自动播放的实现方式
2021/06/21 HTML / CSS