解决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 容错处理代码, 屏蔽错误信息
Mar 09 Javascript
写的htc的数据表格
Jan 20 Javascript
js选取多个或单个元素的实现代码(用class)
Aug 22 Javascript
js判读浏览器是否支持html5的canvas的代码
Nov 18 Javascript
jquery实现静态搜索功能(可输入搜索文字)
Mar 28 jQuery
jQuery模拟实现天猫购物车动画效果实例代码
May 25 jQuery
浅谈js中的this问题
Aug 31 Javascript
JavaScript面向对象精要(上部)
Sep 12 Javascript
php main 与 iframe 相互通讯类(js+php同域/跨域)
Sep 14 Javascript
为什么我们要做三份 Webpack 配置文件
Sep 18 Javascript
Vue v2.5 调整和更新不完全问题
Oct 24 Javascript
js不常见操作运算符总结
Nov 20 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
谏山创故乡大分县日田市水坝将设立《进击的巨人》立艾伦、三笠以及阿尔敏的铜像!
2020/03/06 日漫
Windows下的PHP安装文件线程安全和非线程安全的区别
2014/04/23 PHP
destoon调用discuz论坛中带图片帖子的实现方法
2014/08/21 PHP
php字符串截取函数用法分析
2014/11/25 PHP
PHP 表单提交及处理表单数据详解及实例
2016/12/27 PHP
PHP如何根据文件头检测文件类型实例代码
2018/10/14 PHP
基于jQuery UI CSS Framework开发Widget的经验
2010/08/21 Javascript
基于jQuery捕获超链接事件进行局部刷新代码
2012/05/10 Javascript
原生js实现跨浏览器获取鼠标按键的值
2013/04/08 Javascript
JavaScript6 let 新语法优势介绍
2016/07/15 Javascript
Vue.js:使用Vue-Router 2实现路由功能介绍
2017/02/22 Javascript
关于foreach循环中遇到的问题小结
2017/05/08 Javascript
php 修改密码实现代码
2017/05/24 Javascript
jQuery插件imgAreaSelect基础讲解
2017/05/26 jQuery
ReactNative踩坑之配置调试端口的解决方法
2017/07/28 Javascript
D3.js的基础部分之数组的处理数组的排序和求值(v3版本)
2019/05/09 Javascript
用Python从零实现贝叶斯分类器的机器学习的教程
2015/03/31 Python
python实现发送邮件功能代码
2017/12/14 Python
python通过elixir包操作mysql数据库实例代码
2018/01/31 Python
一篇文章读懂Python赋值与拷贝
2018/04/19 Python
Python实现的连接mssql数据库操作示例
2018/08/17 Python
python存储16bit和32bit图像的实例
2018/12/05 Python
解决python2 绘图title,xlabel,ylabel出现中文乱码的问题
2019/01/29 Python
python面试题小结附答案实例代码
2019/04/11 Python
django 中的聚合函数,分组函数,F 查询,Q查询
2019/07/25 Python
Python中的相关分析correlation analysis的实现
2019/08/29 Python
Python笔记之工厂模式
2019/11/20 Python
scrapy结合selenium解析动态页面的实现
2020/09/28 Python
python向企业微信发送文字和图片消息的示例
2020/09/28 Python
IRO美国官网:法国服装品牌
2018/03/06 全球购物
我为党旗添光彩演讲稿
2014/09/13 职场文书
政府会议通知范文
2015/04/15 职场文书
病假条格式范文
2015/08/17 职场文书
python实现黄金分割法的示例代码
2021/04/28 Python
Python scrapy爬取起点中文网小说榜单
2021/06/13 Python
Linux中sftp常用命令整理
2022/06/28 Servers