jQuery为DOM动态追加事件的方法


Posted in Javascript onFebruary 16, 2017

处理一个列表绑定,因为是一个展示项目,没有使用复杂的插件,直接jsrender写了个模板,但是后面有一个操作按钮,去查看数据详情,想到了jquery使用on进行事件委托,然后就开搞

最初是这样写的:

$(".btn-open").on("click", function () {        
alert($(this).text());      
})

当然这样是不起作用的,因为在document reday后,.btn-open 这个元素根本还不存在呢,列表没绑定,事件当然也帮不上的!

 然后是这样的:

$(".table").on("click", ".btn-open", function () {        
alert($(this).text());      
})

代码可以看得明白,找到.table 元素,给.btn-open 追加 click事件。一般来说这样就可以了。但是依然不行,我勒个去,我开始怀疑自己的记忆了。然后去找了下文档。

文档说:

事件处理只能绑定在当前被选中的元素上;而且,在您的代码调用.on()的时候,他们必须在页面文档中已经存在。

好吧,在document ready时,.table确实不存在,所以 还要继续改

$(document).on("click", ".btn-open", function () {        
alert($(this).text());      
})

终于可以工作了。

总结:

1.jQuery委托事件与直接绑定事件的区别:

$(“X”).on(“click”,function(){})

$(“X”).on(“click”,”选择X的子元素”,function(){})

2.事件处理只能绑定到当前存在的元素身上,也就是第一个选择器中的内容必须当前存在(这也是为什么第二段代码不起作用的原因,因为.table不存在),所以保险起见,可以直接绑定委托事件到document上。

以前一直没有仔细的阅读文档,对这一块模棱两可,今天弄清楚并记录下来。

以上这篇jQuery为DOM动态追加事件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 文档的编码问题解决
Mar 01 Javascript
JQuery的Validation插件中Remote验证的中文问题
Jul 26 Javascript
jQuery对表单元素的取值和赋值操作代码
May 19 Javascript
Node.js 去掉种子(torrent)文件里的邪恶信息
Mar 27 Javascript
Jquery日期选择datepicker插件用法实例分析
Jun 08 Javascript
使用jQuery.form.js/springmvc框架实现文件上传功能
May 12 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
Apr 02 jQuery
bootstrap select插件封装成Vue2.0组件
Apr 17 Javascript
使用3D引擎threeJS实现星空粒子移动效果
Sep 13 Javascript
JS中promise化微信小程序api
Apr 12 Javascript
layer实现弹出层自动调节位置
Sep 05 Javascript
javascript 使用sleep函数的常见方法详解
Apr 26 Javascript
纯js实现html转pdf的简单实例(推荐)
Feb 16 #Javascript
jq给页面添加覆盖层遮罩的实例
Feb 16 #Javascript
基于JavaScript实现全选、不选和反选效果
Feb 15 #Javascript
bootstrap为水平排列的表单和内联表单设置可选的图标
Feb 15 #Javascript
bootstrap中添加额外的图标实例代码
Feb 15 #Javascript
基于JavaScript实现轮播图原理及示例
Apr 10 #Javascript
js实现模糊匹配功能
Feb 15 #Javascript
You might like
linux命令之调试工具strace的深入分析
2013/06/03 PHP
PHP fopen()和 file_get_contents()应用与差异介绍
2014/03/19 PHP
PHP获取当前页面URL函数实例
2014/10/22 PHP
PHP+jQuery翻板抽奖功能实现
2015/10/19 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
网站被恶意镜像怎么办 php一段代码轻松搞定(全面版)
2018/10/23 PHP
PDO::getAttribute讲解
2019/01/28 PHP
Laravel框架中缓存的使用方法分析
2019/09/06 PHP
解决Laravel 不能创建 migration 的问题
2019/10/09 PHP
最短的IE判断代码
2011/03/13 Javascript
等待指定时间后自动跳转或关闭当前页面的js代码
2013/07/09 Javascript
JS实现鼠标经过好友列表中的好友头像时显示资料卡的效果
2014/07/02 Javascript
Jquery的基本对象转换和文档加载用法实例
2015/02/25 Javascript
JavaScript实现文字跟随鼠标特效
2015/08/06 Javascript
js实现纯前端的图片预览
2016/04/27 Javascript
jQuery实现的checkbox级联选择下拉菜单效果示例
2016/12/26 Javascript
基于ionic实现下拉刷新功能
2018/05/10 Javascript
微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解
2019/03/28 Javascript
jquery实现的分页显示功能示例
2019/08/23 jQuery
python处理文本文件实现生成指定格式文件的方法
2014/07/31 Python
python判断windows系统是32位还是64位的方法
2015/05/11 Python
利用pyinstaller打包exe文件的基本教程
2019/05/02 Python
Django如何实现网站注册用户邮箱验证功能
2019/08/14 Python
python批量将excel内容进行翻译写入功能
2019/10/10 Python
实现CSS3中的border-radius(边框圆角)示例代码
2013/07/19 HTML / CSS
Feelunique美国:欧洲大型的在线美妆零售电商
2018/11/04 全球购物
活动总结报告范文
2014/05/04 职场文书
校外活动方案
2014/08/28 职场文书
2014年教师党员自我评议
2014/09/19 职场文书
药店采购员岗位职责
2014/09/30 职场文书
企业党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
新党章的学习心得体会
2014/11/07 职场文书
2014年办公室文员工作总结
2014/11/12 职场文书
2014年检验科工作总结
2014/11/22 职场文书
tp5使用layui实现多个图片上传(带附件选择)的方法实例
2021/11/17 PHP