解决jquery中动态新增的元素节点无法触发事件问题的两种方法


Posted in Javascript onOctober 30, 2015

比如做一个ajax读取留言列表的时候,每条留言后面有个回复按钮,class为“reply”,如果你用的是$(".reply").click(function(){ //do something... }),想必后面通过ajax加载进来的列表中的回复按钮,点击事件会失效。

其实最简单的方法就是直接在标签中写onclick="",但是这样写其实是有点low的,最好的方式还是通过给类名绑定一个click事件。

解决jquery中动态新增的元素节点无法触发事件的问题有两种解决方法,如下:

为了达到更好的演示效果,假设在某个页面的body下有以下结构的代码:

<p id="pLabel">新加一条</p>
<ul id="ulLabel">
 <li class="liLabel">aaa1</li>
 <li class="liLabel">aaa2</li>
 <li class="liLabel">aaa3</li>
</ul>
<script type="text/javascript">
$("#pLabel").click(function(){
 $("#ulLabel").append('<li class="liLabel">aaaQ</li>'); //动态像ul的末尾追加一个新元素
});
</script>

方法一:使用live

live()函数会给被选的元素绑定上一个或者多个事件处理程序,并且规定当这些事件发生时运行的函数。通过live()函数适用于匹配选择器的当前及未来的元素。比如,通过脚本动态创建的元素。

实现如下:

$('.liLabel').live('click', function(){
 alert('OK');
});

方法二:使用on

可以通过on方法绑定事件,可以绑定到它的父级或者body中,实现如下:

$("#ulLabel").on('click','.liLabel',function(){
 alert('OK')
});
或者:
$("body").on('click','.liLabel',function(){
 alert('OK')
});

现在大家可以尝试尝试,是不是问题已经得到解决了,希望这篇文章能够真正的帮助大家。

Javascript 相关文章推荐
JavaScript 图片预览效果 推荐
Dec 22 Javascript
YUI的Tab切换实现代码
Apr 11 Javascript
JavaScript+html5 canvas实现本地截图教程
Apr 16 Javascript
js获取对象、数组的实际长度,元素实际个数的实现代码
Jun 08 Javascript
bootstrap的3级菜单样式,支持母版页保留打开状态实现方法
Nov 10 Javascript
在javaScript中检测数据类型的几种方式小结
Mar 04 Javascript
JS jQuery使用正则表达式去空字符的简单实现代码
May 20 jQuery
详解vue2.0监听属性的使用心得及搭配计算属性的使用
Jul 18 Javascript
如何使用electron-builder及electron-updater给项目配置自动更新
Dec 24 Javascript
微信小程序实现通过双向滑动缩放图片大小的方法
Dec 30 Javascript
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
Apr 16 Javascript
在vue-cli3中使用axios获取本地json操作
Jul 30 Javascript
jQuery+Ajax实现无刷新分页
Oct 30 #Javascript
JavaScript中的定时器之Item23的合理使用
Oct 30 #Javascript
javascript字符串替换函数如何一次性全部替换掉
Oct 30 #Javascript
JS实现带提示的星级评分效果完整实例
Oct 30 #Javascript
jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
Oct 30 #Javascript
jQuery密码强度检测插件passwordStrength用法实例分析
Oct 30 #Javascript
基于jQuery实现的美观星级评论打分组件代码
Oct 30 #Javascript
You might like
PHP 图片上传代码
2011/09/13 PHP
浅析PHP页面局部刷新功能的实现小结
2013/06/21 PHP
PHP中数据库单例模式的实现代码分享
2014/08/21 PHP
PHP中SimpleXML函数用法分析
2014/11/26 PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
2016/11/02 PHP
php实现购物车功能(以大苹果购物网为例)
2017/03/09 PHP
php利用ob_start()清除输出和选择性输出的方法
2018/01/18 PHP
javascript中节点的最近的相关节点访问方法
2013/03/20 Javascript
FF IE浏览器修改标签透明度的方法
2014/01/27 Javascript
jQuery绑定事件不执行但alert后可以正常执行
2014/06/03 Javascript
原生JavaScript实现异步多文件上传
2015/12/02 Javascript
JavaScript常见的五种数组去重的方式
2016/12/15 Javascript
JS实现选定指定HTML元素对象中指定文本内容功能示例
2017/02/13 Javascript
RequireJs的使用详解
2017/02/19 Javascript
js学习总结之DOM2兼容处理重复问题的解决方法
2017/07/27 Javascript
JavaScript输入分钟、秒倒计时技巧总结(附代码)
2017/08/17 Javascript
详解Nodejs内存治理
2018/05/13 NodeJs
layui的table单击行勾选checkbox功能方法
2018/08/14 Javascript
bootstrapTable+ajax加载数据 refresh更新数据
2018/08/31 Javascript
每个 JavaScript 工程师都应懂的33个概念
2018/10/22 Javascript
微信小程序使用swiper组件实现层叠轮播图
2018/11/04 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
2019/12/04 Javascript
详解JavaScript修改注册表的方法
2020/01/05 Javascript
Python向excel中写入数据的方法
2019/05/05 Python
python ffmpeg任意提取视频帧的方法
2020/02/21 Python
python实现文法左递归的消除方法
2020/05/22 Python
牛津在线药房:Oxford Online Pharmacy
2020/11/16 全球购物
惠而浦美国官网:Whirlpool.com
2021/01/19 全球购物
金融行业务员的自我评价
2013/12/13 职场文书
幼儿园教师节活动方案
2014/02/02 职场文书
教育专业毕业生推荐信
2014/07/10 职场文书
基层领导干部“四风”问题批评与自我批评
2014/09/23 职场文书
基层党员四风问题自我剖析材料
2014/09/29 职场文书
2014年环保局工作总结
2014/12/11 职场文书
2015年幼儿园教育教学工作总结
2015/05/25 职场文书
各类场合主持词开场白范文集锦
2019/08/16 职场文书