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 相关文章推荐
js判断选择的时间是否大于今天的代码
Aug 20 Javascript
javascript实现画不相交的圆
Apr 07 Javascript
javascript获取系统当前时间的方法
Nov 19 Javascript
jQuery form插件的使用之处理server返回的JSON, XML,HTML数据
Jan 26 Javascript
jQuery UI库中dialog对话框功能使用全解析
Apr 23 Javascript
微信小程序 数据封装,参数传值等经验分享
Jan 09 Javascript
JavaScript中清空数组的三种方式
Mar 22 Javascript
vue页面加载闪烁问题的解决方法
Mar 28 Javascript
jQuery实现点击图标div循环放大缩小功能
Sep 30 jQuery
Vue.js的动态组件模板的实现
Nov 26 Javascript
vue.js自定义组件实现v-model双向数据绑定的示例代码
Jan 08 Javascript
vue treeselect获取当前选中项的label实例
Aug 31 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递归使用示例(php递归函数)
2014/02/14 PHP
PHP实现GIF图片验证码
2015/11/04 PHP
PHP随机获取未被微信屏蔽的域名(微信域名检测)
2017/03/19 PHP
JQuery制作的放大效果的popup对话框(未添加任何jquery plugin)分享
2013/04/28 Javascript
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
快速掌握Node.js模块封装及使用
2016/03/21 Javascript
Javascript 链式作用域详细介绍
2017/02/23 Javascript
Vue组件之全局组件与局部组件的使用详解
2017/10/09 Javascript
深入浅析Node环境和浏览器的区别
2018/08/14 Javascript
基于JavaScript canvas绘制贝塞尔曲线
2018/12/25 Javascript
vue watch关于对象内的属性监听
2019/04/22 Javascript
layui switch 开关监听 弹出确定状态转换的例子
2019/09/21 Javascript
vue基于v-charts封装双向条形图的实现代码
2019/12/09 Javascript
使用vue打包进行云服务器上传的问题
2020/03/02 Javascript
Python中的__new__与__init__魔术方法理解笔记
2014/11/08 Python
Python中的面向对象编程详解(下)
2015/04/13 Python
利用python爬取软考试题之ip自动代理
2017/03/28 Python
Python机器学习算法之k均值聚类(k-means)
2018/02/23 Python
python如何保证输入键入数字的方法
2019/08/23 Python
Python建造者模式案例运行原理解析
2020/06/29 Python
CSS3五个技巧给你的网站带来出色的效果
2009/04/02 HTML / CSS
CSS3实现内凹圆角的实例代码
2017/05/04 HTML / CSS
html5 canvas里绘制椭圆并保持线条粗细均匀的技巧
2013/03/25 HTML / CSS
英国时尚家具、家居饰品及礼品商店:Graham & Green
2016/09/15 全球购物
德国前卫设计师时装在线商店:Luxury Loft
2019/11/04 全球购物
西班牙Polo衫品牌:Polo Club
2020/08/09 全球购物
网站编辑求职信
2013/10/17 职场文书
农救科工作职责
2013/11/27 职场文书
金融行业职业生涯规划范文
2014/01/17 职场文书
考试诚信承诺书
2014/05/23 职场文书
乡镇综治宣传月活动总结
2014/07/02 职场文书
法人单位授权委托书范文
2014/10/06 职场文书
英文导游词
2015/02/13 职场文书
质量整改通知单
2015/04/21 职场文书
青年文明号创建口号大全
2015/12/25 职场文书
SpringBoot项目部署到阿里云服务器的实现步骤
2022/06/28 Java/Android