解决jQuery使用append添加的元素事件无效的问题


Posted in jQuery onAugust 30, 2018

jquery api官方的例子在新增的元素上添加事件

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

on() 方法在被选元素及子元素上添加一个或多个事件处理程序。

自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品。

注意:使用 on() 方法添加的事件处理程序适用于当前及未来的元素(比如由脚本创建的新元素)。

提示:如需移除事件处理程序,请使用 off() 方法。

提示:如需添加只运行一次的事件然后移除,请使用 one() 方法。

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

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

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

//展开按钮点击触发事件

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

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

click是点击事件,但是在页面加载完之后,jquery事件新添加的元素,用click的话是无法获取元素的,这个时候要用on去获取元素事件,简单的说页面加载完成时候页面显示的元素可以用on,也可以用click,但是页面加载完成之后后期再追加的元素只能用on。

以上这篇解决jQuery使用append添加的元素事件无效的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jQuery之动画ajax事件(实例讲解)
Jul 18 jQuery
jQuery实现可兼容IE6的遮罩功能详解
Sep 19 jQuery
如何用input标签和jquery实现多图片的上传和回显功能
May 16 jQuery
jQuery基于Ajax实现读取XML数据功能示例
May 31 jQuery
jQuery+CSS实现的标签页效果示例【测试可用】
Aug 14 jQuery
jQuery-ui插件sortable实现自由拖动排序
Dec 01 jQuery
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
Feb 27 jQuery
jQuery Raty星级评分插件使用方法实例分析
Nov 25 jQuery
Jquery属性的获取/设置及样式添加/删除操作技巧分析
Dec 23 jQuery
jQuery使用ajax传递json对象到服务端及contentType的用法示例
Mar 12 jQuery
如何使用jQuery操作Cookies方法解析
Sep 08 jQuery
jQuery冲突问题解决方法
Jan 19 jQuery
jQuery实现的简单手风琴效果示例
Aug 29 #jQuery
jQuery实现的淡入淡出图片轮播效果示例
Aug 29 #jQuery
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
Aug 28 #jQuery
jQuery md5加密插件jQuery.md5.js用法示例
Aug 24 #jQuery
jQuery实现鼠标移到某个对象时弹出显示层功能
Aug 23 #jQuery
jquery获取select选中值的文本,并赋值给另一个输入框的方法
Aug 21 #jQuery
JQuery扩展对象方法操作示例
Aug 21 #jQuery
You might like
php对mongodb的扩展(初出茅庐)
2012/11/11 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
2017/02/10 PHP
万能的php分页类
2017/07/06 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
用Greasemonkey 脚本收藏网站会员信息到本地
2009/10/26 Javascript
jQuery getJSON 处理json数据的代码
2010/07/26 Javascript
jquery修改属性值实例代码(设置属性值)
2014/01/06 Javascript
jQuery - css() 方法示例详解
2014/01/16 Javascript
javascript字母大小写转换的4个函数详解
2014/05/09 Javascript
jQuery显示和隐藏 常用的状态判断方法
2015/01/29 Javascript
HTML+CSS+JS实现完美兼容各大浏览器的TABLE固定列
2015/04/26 Javascript
jQuery满屏焦点图左右滚动特效代码分享
2015/09/07 Javascript
jQuery实现仿QQ头像闪烁效果的文字闪动提示代码
2015/11/03 Javascript
基于JavaScript实现文字超出部分隐藏
2016/02/29 Javascript
angularjs的select使用及默认选中设置
2017/04/08 Javascript
angular过滤器实现排序功能
2017/06/27 Javascript
vue多种弹框的弹出形式的示例代码
2017/09/18 Javascript
node+koa2+mysql+bootstrap搭建一个前端论坛
2018/05/06 Javascript
Chart.js 轻量级HTML5图表绘制工具库(知识整理)
2018/05/22 Javascript
JavaScript原型对象原理与应用分析
2018/12/27 Javascript
超简单的微信小程序轮播图
2019/11/22 Javascript
何时/使用 Vue3 render 函数的教程详解
2020/07/25 Javascript
Python time模块详解(常用函数实例讲解,非常好)
2014/04/24 Python
python实现猜数字小游戏
2020/03/24 Python
PyTorch在Windows环境搭建的方法步骤
2020/05/12 Python
Python unittest装饰器实现原理及代码
2020/09/08 Python
css3.0 图形构成实例练习一
2013/03/19 HTML / CSS
国外平面设计第一市场:99designs
2016/10/25 全球购物
Spartoo瑞典:鞋子、包包和衣服
2018/09/15 全球购物
电脑租赁公司创业计划书
2014/01/08 职场文书
助人为乐模范事迹材料
2014/06/02 职场文书
2014年商场国庆节活动策划方案
2014/09/16 职场文书
入党现实表现材料
2014/12/23 职场文书
保险公司2016开门红口号集锦
2015/12/24 职场文书
2016年圣诞节义工活动总结
2016/04/01 职场文书
Redis sentinel哨兵集群的实现步骤
2022/07/15 Redis