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 相关文章推荐
JsEasy简介 JsEasy是什么?与下载
Mar 07 Javascript
javascript判断机器是否联网的2种方法
Aug 09 Javascript
jQuery中delegate与on的用法与区别示例介绍
Dec 20 Javascript
javascript:void(0)的问题使用探讨
Apr 10 Javascript
使用AngularJS创建自定义的过滤器的方法
Jun 18 Javascript
实例解析jQuery插件EasyUI最常用的表单验证规则
Nov 29 Javascript
js模拟支付宝密码输入框
Apr 11 Javascript
超级简易的JS计算器实例讲解(实现加减乘除)
Aug 08 Javascript
微信小程序引用iconfont图标的方法
Oct 22 Javascript
关于Vue中axios的封装实例详解
Oct 20 Javascript
ES6 Object.assign()的用法及其使用
Jan 18 Javascript
Node.js path模块,获取文件后缀名操作
Nov 07 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
php mysqli查询语句返回值类型实例分析
2016/06/29 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
javascript的事件描述
2006/09/08 Javascript
关于javascript中this关键字(翻译+自我理解)
2010/10/20 Javascript
javascript解析json实例详解
2014/11/05 Javascript
js实现文本框输入文字个数限制代码
2015/12/25 Javascript
浅谈jQuery 选择器和dom操作
2016/06/07 Javascript
AngularJS ng-bind 指令简单实现
2016/07/30 Javascript
Angular 4 指令快速入门教程
2017/06/07 Javascript
javascript将list转换成树状结构的实例
2017/09/08 Javascript
vue中上传视频或图片或图片和文字一起到后端的解决方法
2019/12/01 Javascript
JS判断浏览器类型与操作系统的方法分析
2020/04/30 Javascript
Python字符遍历的艺术
2008/09/06 Python
Python实现发送email的几种常用方法
2014/08/18 Python
Windows下安装python2.7及科学计算套装
2015/03/05 Python
使用Python进行AES加密和解密的示例代码
2018/02/02 Python
对Python3中的print函数以及与python2的对比分析
2018/05/02 Python
python配置grpc环境
2019/01/01 Python
python利用selenium进行浏览器爬虫
2019/04/25 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
2019/12/31 Python
python绘制封闭多边形教程
2020/02/18 Python
Python matplotlib实时画图案例
2020/04/23 Python
python读取hdfs并返回dataframe教程
2020/06/05 Python
使用keras时input_shape的维度表示问题说明
2020/06/29 Python
Python datetime 如何处理时区信息
2020/09/02 Python
美国著名的品牌折扣店:Burlington
2017/06/08 全球购物
毕业求职自荐信格式是什么
2013/11/19 职场文书
新闻记者个人求职的自我评价
2013/11/28 职场文书
法院信息化建设方案
2014/05/21 职场文书
分公司经理任命书
2014/06/05 职场文书
师范生求职信
2014/06/14 职场文书
党建目标管理责任书
2014/07/25 职场文书
四风批评与自我批评发言稿
2014/10/14 职场文书
集团财务总监岗位职责
2015/04/03 职场文书
技术员岗位职责范本
2015/04/11 职场文书
Python自动化之批量处理工作簿和工作表
2021/06/03 Python