解决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字典探测用户名工具
Oct 05 Javascript
jQuery Flash/MP3/Video多媒体插件
Jan 18 Javascript
最短的IE判断代码
Mar 13 Javascript
关于js new Date() 出现NaN 的分析
Oct 23 Javascript
E3 tree 1.6在Firefox下显示问题的修复方法
Jan 30 Javascript
javascript对下拉列表框(select)的操作实例讲解
Nov 29 Javascript
Javascript中获取对象的原型对象的方法小结
Feb 25 Javascript
第九章之路径分页标签与徽章组件
Apr 25 Javascript
小程序实现页面顶部选项卡效果
Nov 06 Javascript
JQuery模拟实现网页中自定义鼠标右键菜单功能
Nov 14 jQuery
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
Feb 20 jQuery
javascript设计模式之迭代器模式
Jan 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
关于Appserv无法打开localhost问题的解决方法
2009/10/16 PHP
php feof用来识别文件末尾字符的方法
2010/08/01 PHP
php中计算未知长度的字符串哪个字符出现的次数最多的代码
2012/08/14 PHP
PHP如何将XML转成数组
2016/04/04 PHP
JavaScript 的方法重载效果
2009/08/07 Javascript
jquery 问答知识整理
2010/02/11 Javascript
写自已的js类库需要的核心代码
2012/07/16 Javascript
jquery利用命名空间移除绑定事件的方法
2015/03/11 Javascript
JS控制表单提交的方法
2015/07/09 Javascript
全面解析Bootstrap图片轮播效果
2015/12/03 Javascript
vue-resourse将json数据输出实例
2017/03/08 Javascript
基于nodejs 的多页面爬虫实例代码
2017/05/31 NodeJs
简单明了区分escape、encodeURI和encodeURIComponent
2018/05/26 Javascript
关于vue编译版本引入的问题的解决
2018/09/17 Javascript
javascript中call()、apply()的区别
2019/03/21 Javascript
详解Vue、element-ui、axios实现省市区三级联动
2019/05/07 Javascript
微信小程序动画组件使用解析,类似vue,且更强大
2019/08/01 Javascript
[02:59]DOTA2完美大师赛主赛事第三日精彩集锦
2017/11/25 DOTA
Python中Random和Math模块学习笔记
2015/05/18 Python
详解Django缓存处理中Vary头部的使用
2015/07/24 Python
深入理解Python中变量赋值的问题
2017/01/12 Python
13个最常用的Python深度学习库介绍
2017/10/28 Python
python的staticmethod与classmethod实现实例代码
2018/02/11 Python
Django ORM 聚合查询和分组查询实现详解
2019/08/09 Python
python列表的逆序遍历实现
2020/04/20 Python
面向新手解析python Beautiful Soup基本用法
2020/07/11 Python
如何使用Python进行PDF图片识别OCR
2021/01/22 Python
Chain Reaction Cycles芬兰:世界上最大的在线自行车商店
2017/12/06 全球购物
接口中的方法可以是abstract的吗
2015/07/23 面试题
体育教育专业自荐信范文
2013/12/20 职场文书
个人工作主要事迹
2014/05/08 职场文书
卖房协议书样本
2014/10/30 职场文书
详解JavaScript中Arguments对象用途
2021/08/30 Javascript
深入浅出讲解Java8函数式编程
2022/01/18 Java/Android
python分分钟绘制精美地图海报
2022/02/15 Python
浅析python中特殊文件和特殊函数
2022/02/24 Python