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 刷新页面的代码小结 推荐
Apr 02 Javascript
js中判断控件是否存在
Aug 25 Javascript
删除节点的jquery代码
Jan 13 Javascript
JavaScript数值数组排序示例分享
May 27 Javascript
零基础轻松学JavaScript闭包
Dec 30 Javascript
AngularJS Toaster使用详解
Feb 24 Javascript
JS跳转手机站url的若干注意事项
Oct 18 Javascript
JS实现图片放大镜插件详解
Nov 06 Javascript
微信小程序实现弹出菜单
Jul 19 Javascript
layui实现图片虚拟路径上传,预览和删除的例子
Sep 25 Javascript
Layui数据表格之单元格编辑方式
Oct 26 Javascript
基于JS实现操作成功之后自动跳转页面
Sep 25 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
CodeIgniter钩子用法实例详解
2016/01/20 PHP
用Javascript实现Sleep暂停功能代码
2010/09/03 Javascript
JQuery扩展插件Validate 5添加自定义验证方法
2011/09/05 Javascript
了解一点js的Eval函数
2012/07/26 Javascript
jquery插件珍藏(图片局部放大/信息提示框)
2013/01/08 Javascript
jquery获取tr并更改tr内容示例代码
2014/02/13 Javascript
jquery实现用户打分评分特效
2015/05/28 Javascript
jQuery右下角旋转环状菜单特效代码
2015/08/10 Javascript
js操作cookie保存浏览记录的方法
2015/12/25 Javascript
Js实现简单的小球运动特效
2016/02/18 Javascript
Bootstrap页面布局基础知识全面解析
2016/06/13 Javascript
javascript简单进制转换实现方法
2016/11/24 Javascript
详解Vue中使用v-for语句抛出错误的解决方案
2017/05/04 Javascript
JS简单获取并修改input文本框内容的方法示例
2018/04/08 Javascript
vue技术分享之你可能不知道的7个秘密
2018/04/09 Javascript
详解微信小程序获取当前时间及日期的方法
2019/04/28 Javascript
Vue实战教程之仿肯德基宅急送App
2019/07/19 Javascript
JS制作简易计算器的实例代码
2020/07/04 Javascript
python字符串替换示例
2014/04/24 Python
Python中线程的MQ消息队列实现以及消息队列的优点解析
2016/06/29 Python
Python坐标线性插值应用实现
2019/11/13 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
2019/11/19 Python
解决Python图形界面中设置尺寸的问题
2020/03/05 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
2020/03/30 Python
keras导入weights方式
2020/06/12 Python
python中plt.imshow与cv2.imshow显示颜色问题
2020/07/16 Python
html5开发之viewport使用
2013/10/17 HTML / CSS
在html页面中取得session中的值的方法
2020/08/11 HTML / CSS
Linux管理员面试经常问道的相关命令
2014/12/12 面试题
请说出这段代码执行后a和b的值分别是多少
2015/03/28 面试题
介绍一下SOA和SOA的基本特征
2016/02/24 面试题
毕业生个人求职的自我评价
2013/10/28 职场文书
音乐学个人的自荐书范文
2013/11/26 职场文书
园林资料员岗位职责
2013/12/30 职场文书
小学生感恩老师演讲稿
2014/08/28 职场文书
旷课检讨书范文
2014/10/30 职场文书