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 相关文章推荐
利用webqq协议使用python登录qq发消息源码参考
Apr 08 Javascript
js监听滚动条滚动事件使得某个标签内容始终位于同一位置
Jan 24 Javascript
Javascript中this的用法详解
Sep 22 Javascript
jQuery防止重复绑定事件的解决方法
May 14 Javascript
分享jQuery封装好的一些常用操作
Jul 28 Javascript
Webpack如何引入bootstrap的方法
Jun 17 Javascript
Angular中使用better-scroll插件的方法
Mar 27 Javascript
关于jquery layui弹出层的使用方法
Apr 21 jQuery
详解小程序毫秒级倒计时(适用于拼团秒杀功能)
May 05 Javascript
使用layui日期控件laydate对开始和结束时间进行联动控制的方法
Sep 06 Javascript
微信小程序实现打开并下载服务器上面的pdf文件到手机
Sep 20 Javascript
vuex state中的数组变化监听实例
Nov 06 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 mvc开发模式的感想
2011/06/28 PHP
php遍历文件夹和文件列表示例分享
2014/03/11 PHP
php遍历文件夹下的所有文件和子文件夹示例
2014/03/20 PHP
yii上传文件或图片实例
2014/04/01 PHP
php英文单词统计器
2016/06/23 PHP
thinkPHP分页功能实例详解
2017/05/05 PHP
jquery tools 系列 scrollable(2)
2009/09/06 Javascript
JavaScript 直接操作本地文件的实现代码
2009/12/01 Javascript
js实现通用的微信分享组件示例
2014/03/10 Javascript
前端面试题及答案整理(二)
2016/08/26 Javascript
react-native fetch的具体使用方法
2017/11/01 Javascript
JavaScript实现图片放大镜效果
2019/06/27 Javascript
[32:47]完美世界DOTA2联赛 GXR vs IO 第二场 11.07
2020/11/09 DOTA
[01:02:32]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第二场 2月26日
2021/03/11 DOTA
跟老齐学Python之编写类之一创建实例
2014/10/11 Python
用Python实现随机森林算法的示例
2017/08/24 Python
python 简单搭建阻塞式单进程,多进程,多线程服务的实例
2017/11/01 Python
python+matplotlib演示电偶极子实例代码
2018/01/12 Python
Matplotlib绘制雷达图和三维图的示例代码
2020/01/07 Python
基于python实现坦克大战游戏
2020/10/27 Python
美国时尚配饰品牌:Dooney & Bourke
2017/11/14 全球购物
Sasa莎莎海外旗舰店:香港莎莎美妆平台
2018/03/21 全球购物
GE设备配件:GE Appliance Parts(家电零件、配件和滤水器)
2018/11/28 全球购物
KIKO MILANO俄罗斯官网:意大利领先的化妆品和护肤品品牌
2021/01/09 全球购物
北京RT科技有限公司.net工程师面试题
2013/02/15 面试题
员工培训心得体会
2013/12/30 职场文书
《厄运打不垮的信念》教学反思
2014/04/13 职场文书
演讲稿格式
2014/04/30 职场文书
金融与证券专业求职信
2014/06/22 职场文书
项目申请汇报材料
2014/08/16 职场文书
毕业证丢失证明范本
2014/09/20 职场文书
政协工作总结2015
2015/05/20 职场文书
工作简报范文
2015/07/21 职场文书
uniapp开发小程序的经验总结
2021/04/08 Javascript
Python制作春联的示例代码
2022/01/22 Python
Python 匹配文本并在其上一行追加文本
2022/05/11 Python