解决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 相关文章推荐
JS动画效果代码3
Apr 03 Javascript
jquery获得option的值和对option进行操作
Dec 13 Javascript
node.js中watch机制详解
Nov 17 Javascript
node.js+Ajax实现获取HTTP服务器返回数据
Nov 26 Javascript
jquery实现图片水平滚动效果代码分享
Aug 26 Javascript
简单分析javascript中的函数
Sep 10 Javascript
JavaScript中的编码和解码函数
Feb 15 Javascript
jQuery实现全选、反选和不选功能
Aug 16 jQuery
浅谈Express异步进化史
Sep 09 Javascript
vue项目中公用footer组件底部位置的适配问题
May 10 Javascript
angular6.x中ngTemplateOutlet指令的使用示例
Aug 09 Javascript
JavaScript实现简单贪吃蛇效果
Mar 09 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
德生9700DX电路分析
2021/03/02 无线电
PHP清除数组中所有字符串两端空格的方法
2014/10/20 PHP
Laravel 5框架学习之Eloquent (laravel 的ORM)
2015/04/08 PHP
利用php输出不同的心形图案
2016/04/22 PHP
微信公众号开发之文本消息自动回复php代码
2016/08/08 PHP
JSON PHP中,Json字符串反序列化成对象/数组的方法
2018/05/31 PHP
PHP7变量处理机制修改
2021/03/09 PHP
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
2010/02/07 Javascript
预加载css或javascript的js代码
2010/04/23 Javascript
jquery Tab效果和动态加载的简单实例
2013/12/11 Javascript
jquery常用操作小结
2014/07/21 Javascript
JQuery ztree 异步加载实例讲解
2016/02/25 Javascript
Windows 系统下设置Nodejs NPM全局路径
2016/04/26 NodeJs
jQuery实现jQuery-form.js实现异步上传文件
2017/04/28 jQuery
angular2 ng2 @input和@output理解及示例
2017/10/10 Javascript
Vue监听页面刷新和关闭功能
2019/06/20 Javascript
微信小程序调用天气接口并且渲染在页面过程详解
2019/06/24 Javascript
对vue中的事件穿透与禁止穿透实例详解
2019/10/28 Javascript
js实现头像上传并且可预览提交
2020/12/25 Javascript
element el-table表格的二次封装实现(附表格高度自适应)
2021/01/19 Javascript
[01:38:19]夜魇凡尔赛茶话会 第五期
2021/03/11 DOTA
Python中的__new__与__init__魔术方法理解笔记
2014/11/08 Python
Python进阶之迭代器与迭代器切片教程
2020/01/29 Python
python实现ftp文件传输功能
2020/03/20 Python
Python新手如何进行闭包时绑定变量操作
2020/05/29 Python
filter使用python3代码进行迭代元素的实例详解
2020/12/03 Python
HTML5 自动聚焦(autofocus)属性使用介绍
2013/08/07 HTML / CSS
HTML5 视频播放(video),JavaScript控制视频的实例代码
2018/10/08 HTML / CSS
医学院毕业生自荐信
2013/11/08 职场文书
单身联谊活动方案
2014/01/29 职场文书
大学生军训感想
2014/02/16 职场文书
2015年酒店前台工作总结
2015/04/20 职场文书
2016年暑期见闻作文
2015/11/25 职场文书
2019财务转正述职报告
2019/06/27 职场文书
2019员工保密协议书(3篇)
2019/09/23 职场文书
草系十大最强宝可梦,纸片人上榜,榜首大家最熟悉
2022/03/18 日漫