解决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 相关文章推荐
jquery 事件执行检测代码
Dec 09 Javascript
JavaScript判断变量是否为空的自定义函数分享
Jan 31 Javascript
有关JavaScript中call()和apply() 的一些理解
May 20 Javascript
jQuery实现ajax无刷新分页页码控件
Feb 28 Javascript
bootstrap table实现x-editable的行单元格编辑及解决数据Empty和支持多样式问题
Aug 10 Javascript
js 实现在2d平面上画8的方法
Oct 10 Javascript
jQuery的ztree仿windows文件新建和拖拽功能的实现代码
Dec 05 jQuery
JavaScrip数组去重操作实例小结
Jun 20 Javascript
JointJS JavaScript流程图绘制框架解析
Aug 15 Javascript
基于JS判断对象是否是数组
Jan 10 Javascript
Javascript异步流程控制之串行执行详解
Sep 27 Javascript
JavaScript实现音乐导航效果
Nov 19 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
正则表达式语法
2006/10/09 Javascript
ioncube_loader_win_5.2.dll的错误解决方法
2015/01/04 PHP
Laravel框架实现多个视图共享相同数据的方法详解
2019/07/09 PHP
js 跨域和ajax 跨域问题小结
2009/07/01 Javascript
浅谈javascript 面向对象编程
2009/10/28 Javascript
javascript full screen 全屏显示页面元素的方法
2013/09/27 Javascript
nodejs之请求路由概述
2014/07/05 NodeJs
jQuery中nextUntil()方法用法实例
2015/01/07 Javascript
使用JavaScript 实现的人脸检测
2015/03/24 Javascript
jquery使用经验小结
2015/05/20 Javascript
在Node.js中使用HTTP上传文件的方法
2015/06/23 Javascript
详解Javascript事件驱动编程
2016/01/03 Javascript
jQuery+Ajax实现无刷新操作
2016/01/04 Javascript
AngularJS实现在ng-Options加上index的解决方法
2016/11/03 Javascript
简单三步实现报表页面集成天气
2016/12/15 Javascript
JavaScript之underscore_动力节点Java学院整理
2017/07/03 Javascript
Vue2.0权限树组件实现代码
2017/08/29 Javascript
函数式编程入门实践(一)
2019/04/20 Javascript
vue中img src 动态加载本地json的图片路径写法
2019/04/25 Javascript
关于JS模块化的知识点分享
2019/10/16 Javascript
Python遍历目录中的所有文件的方法
2016/07/08 Python
Python DataFrame.groupby()聚合函数,分组级运算
2018/09/18 Python
Django保护敏感信息的方法示例
2019/05/09 Python
Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)
2019/07/16 Python
手把手教你pycharm专业版安装破解教程(linux版)
2019/09/26 Python
Django之全局使用request.user.username的实例详解
2020/05/14 Python
Pycharm配置lua编译环境过程图解
2020/11/28 Python
Canvas实现放大镜效果完整案例分析(附代码)
2020/11/26 HTML / CSS
热能动力工程毕业生自荐信
2013/11/07 职场文书
食品科学与工程专业毕业生求职信范文
2014/07/21 职场文书
语文课外活动总结
2014/08/27 职场文书
幼儿园国庆节活动总结
2015/03/23 职场文书
转正申请报告格式
2015/05/15 职场文书
劳动争议仲裁代理词
2015/05/25 职场文书
丧事酒宴答谢词
2015/09/30 职场文书
Python加密技术之RSA加密解密的实现
2022/04/08 Python