解决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 String 对象常用方法详解
May 13 Javascript
Jquery中map函数的用法
Jun 03 Javascript
如何实现json数据可视化详解
Nov 24 Javascript
bootstrap为水平排列的表单和内联表单设置可选的图标
Feb 15 Javascript
Javascript 链式作用域详细介绍
Feb 23 Javascript
AngularJs导出数据到Excel的示例代码
Aug 11 Javascript
Vue+Jwt+SpringBoot+Ldap完成登录认证的示例代码
May 21 Javascript
使用ng-packagr打包Angular的方法示例
Sep 21 Javascript
jQuery实现的简单歌词滚动功能示例
Jan 07 jQuery
详解javascript函数写法大全
Mar 25 Javascript
pm2发布node配置文件ecosystem.json详解
May 15 Javascript
vue iview 隐藏Table组件里的某一列操作
Nov 13 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
DOTA2 无惧惊涛骇浪 昆卡大型水友攻略
2020/04/20 DOTA
Yii实现文章列表置顶功能示例
2016/10/18 PHP
PHP实现统计所有字符在字符串中出现次数的方法
2017/10/17 PHP
JS动态显示表格上下frame的方法
2015/03/31 Javascript
基于Jquery插件实现跨域异步上传文件功能
2016/04/26 Javascript
js捕捉键盘事件和按键键值的方法
2016/10/10 Javascript
JavaScript 函数的定义-调用、注意事项
2017/04/16 Javascript
AngularJs定时器$interval 和 $timeout详解
2017/05/25 Javascript
详解vue2.0 使用动态组件实现 Tab 标签页切换效果(vue-cli)
2017/08/30 Javascript
vue中element-ui表格缩略图悬浮放大功能的实例代码
2018/06/26 Javascript
JS实现纵向轮播图(初级版)
2020/01/18 Javascript
JS手写一个自定义Promise操作示例
2020/03/16 Javascript
antd-mobile ListView长列表的数据更新遇到的坑
2020/04/08 Javascript
Python爬虫:通过关键字爬取百度图片
2017/02/17 Python
Python实现曲线点抽稀算法的示例
2017/10/12 Python
Python从Excel中读取日期一列的方法
2018/11/28 Python
Python使用pydub库对mp3与wav格式进行互转的方法
2019/01/10 Python
Python3+Appium实现多台移动设备操作的方法
2019/07/05 Python
Django自定义全局403、404、500错误页面的示例代码
2020/03/08 Python
HTML5使用drawImage()方法绘制图像
2014/06/23 HTML / CSS
澳大利亚领先的在线美容商城:Adore Beauty
2017/04/14 全球购物
波兰香水和化妆品购物网站:Notino.pl
2017/11/07 全球购物
俄罗斯Sportmarket体育在线商店:用于旅游和户外活动
2019/11/12 全球购物
北京某公司的.net笔试题
2014/03/20 面试题
什么是makefile? 如何编写makefile?
2012/08/08 面试题
奶茶店创业计划书范文
2014/01/17 职场文书
2014年元旦感言
2014/03/06 职场文书
园艺师求职信
2014/03/10 职场文书
小学毕业典礼主持词
2014/03/27 职场文书
列车乘务员工作不细心检讨书
2014/10/07 职场文书
给上级领导的感谢信
2015/01/22 职场文书
晚会闭幕词
2015/01/28 职场文书
大明湖导游词
2015/02/03 职场文书
大学生求职简历自我评价
2015/03/02 职场文书
学生通报表扬范文
2015/05/04 职场文书
上学路上观后感
2015/06/16 职场文书