解决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插件HighCharts绘制简单2D折线图效果示例【附demo源码】
Mar 21 jQuery
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
Oct 13 jQuery
基于jQuery实现Ajax验证用户名是否可用实例
Mar 25 jQuery
jQuery+datatables插件实现ajax加载数据与增删改查功能示例
Apr 17 jQuery
Angular5中调用第三方库及jQuery的添加的方法
Jun 07 jQuery
JQuery获取元素尺寸、位置及页面滚动事件应用示例
May 14 jQuery
jQuery实现的点击显示隐藏下拉菜单功能完整示例
May 17 jQuery
使用异步controller与jQuery实现卷帘式分页
Jun 18 jQuery
JQuery 实现文件下载的常用方法分析
Oct 29 jQuery
jQuery实现点击滚动到指定元素上的方法分析
Mar 19 jQuery
jquery实现有过渡效果的tab切换
Jul 17 jQuery
jQuery实现二级导航菜单的示例
Sep 30 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安全性漫谈
2012/06/28 PHP
关于Iframe如何跨域访问Cookie和Session的解决方法
2013/04/15 PHP
PHP实现对图片的反色处理功能【测试可用】
2018/02/01 PHP
PHP面向对象五大原则之接口隔离原则(ISP)详解
2018/04/04 PHP
破解Session cookie的方法
2006/07/28 Javascript
W3C Group的JavaScript1.8 新特性介绍
2009/05/19 Javascript
javascript 打开页面window.location和window.open的区别
2010/03/17 Javascript
js的匿名函数使用介绍
2013/12/11 Javascript
js中的preventDefault与stopPropagation详解
2014/01/29 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之主动触发事件和模拟冒泡处理
2015/11/24 Javascript
跨域资源共享 CORS 详解
2016/04/26 Javascript
JavaScript奇技淫巧44招【实用】
2016/12/11 Javascript
AngularJS中update两次出现$promise属性无法识别的解决方法
2017/01/05 Javascript
详解vuejs几种不同组件(页面)间传值的方式
2017/06/01 Javascript
JavaScript判断变量名是否存在数组中的实例
2017/12/28 Javascript
D3.js实现拓扑图的示例代码
2018/06/30 Javascript
基于vue、react实现倒计时效果
2019/08/26 Javascript
jQuery实现放大镜案例
2020/10/19 jQuery
[02:38]DOTA2超级联赛专访Loda 认为IG世界最强
2013/05/27 DOTA
[35:34]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python简单实现刷新智联简历
2016/03/30 Python
python2.7实现邮件发送功能
2018/12/12 Python
详解Python3中setuptools、Pip安装教程
2019/06/18 Python
使用tensorflow DataSet实现高效加载变长文本输入
2020/01/20 Python
python的列表List求均值和中位数实例
2020/03/03 Python
python plt可视化——打印特殊符号和制作图例代码
2020/04/17 Python
CHRONEXT英国:您的首选奢华腕表目的地
2020/03/30 全球购物
医务工作者先进事迹材料
2014/01/26 职场文书
幼儿园消防安全制度
2014/01/26 职场文书
德语专业求职信
2014/03/12 职场文书
二年级学生评语大全
2014/04/23 职场文书
创建绿色学校先进个人材料
2014/08/20 职场文书
2015年七七事变78周年纪念活动方案
2015/05/06 职场文书
CSS 圆形进度栏
2021/04/06 HTML / CSS
CSS Transition通过改变Height实现展开收起元素
2021/08/07 HTML / CSS
python神经网络Xception模型
2022/05/06 Python