JavaScript动态添加事件之事件委托


Posted in Javascript onJuly 12, 2016

先给大家讲下什么是事件委托:通俗的讲,事件就是onclick,onmouseover,onmouseout,等就是事件,委托呢,就是让别人来做,这个事件本来是加在某些元素上的,然而你却加到别人身上来做,完成这个事件。

也就是:利用冒泡的原理,把事件加到父级上,触发执行效果。

其所谓的动态添加事件实质就是指js中的事件委托。

我们知道在js中,事件处理只能绑定在当前被选中的元素上,换句话也就是说,事件处理只能绑定在当前文档已经存在的元素上!但是,往往小伙伴们都会遇到一个问题就是,我的元素是后来动态添加到页面的,而我又想给该元素绑定事件,怎么处理?

为了说明白这一问题,我们假设需要给后来添加到当前页面的元素添加click事件。

解决这一问题的核心就是利用js的委托事件。委派事件的优势就是可以给未存在的元素绑定事件,而且委派事件往往开销也会更小!

题外话:举一个最简单的例子:当页面上有1000个div的时候,如果直接给div绑定click事件,其会为1000个元素绑定事件。但是,如果用事件委托,只需要一个元素绑定事件即可。PS:希望????履芄蝗媚忝靼资录??械暮?濉?/p>

我们只是想知道动态创建的元素如何添加事件,你说这么多做什么,做什么...

好吧,言归正传,看具体实现:

// 模拟动态创建元素li
$.ajax({
type: 'get',
data: {},
success: function () { 
$('<li>').addClass('aaa').html('11111111').appendTo($('body'));
},
});
// 给为我们刚刚动态创建的元素添加事件
$(document).on('click', 'li[class=aaa]', function(){
console.log('ddd');
});

以上所述是小编给大家介绍的JavaScript动态添加事件之事件委托,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
不同的jQuery API来处理不同的浏览器事件
Dec 09 Javascript
jquery和js实现对div的隐藏和显示方法
Sep 26 Javascript
jquery实现全选、反选、获得所有选中的checkbox
Sep 13 Javascript
JS查找字符串中出现次数最多的字符
Sep 05 Javascript
浅谈layer的iframe弹窗给里面的标签赋值的问题
Nov 10 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
Dec 02 Javascript
Restify中接入Socket.io报Error:Can’t set headers的错误解决
Mar 28 Javascript
详解基于Bootstrap+angular的一个豆瓣电影app
Jun 26 Javascript
vue iview组件表格 render函数的使用方法详解
Mar 15 Javascript
vue观察模式浅析
Sep 25 Javascript
微信小程序实现3D轮播图效果(非swiper组件)
Sep 21 Javascript
详细分析Node.js 模块系统
Jun 28 Javascript
html+js实现简单的计算器代码(加减乘除)
Jul 12 #Javascript
Javascript iframe交互并兼容各种浏览器的解决方法
Jul 12 #Javascript
javascript加减乘除的简单实例
Jul 12 #Javascript
浅谈javascript中的加减时间
Jul 12 #Javascript
多功能jQuery树插件zTree实现权限列表简单实例
Jul 12 #Javascript
基于BootStrap环境写jQuery tabs插件
Jul 12 #Javascript
Angular 路由route实例代码
Jul 12 #Javascript
You might like
最令PHP初学者们头痛的十四个问题
2007/01/15 PHP
php根据操作系统转换文件名大小写的方法
2014/02/24 PHP
php 无限分类 树形数据格式化代码
2016/10/11 PHP
关于laravel模板中生成URL的几种模式总结
2019/10/18 PHP
js获取浏览器的可视区域尺寸的实现代码
2011/11/30 Javascript
修改jQuery Validation里默认的验证方法
2012/02/14 Javascript
利用javascript实现全部删或清空所选的操作
2014/05/27 Javascript
JS使用ajax从xml文件动态获取数据显示的方法
2015/03/24 Javascript
jquery结婚电子请柬特效源码分享
2015/08/21 Javascript
微信小程序 ecshop地址三级联动实现实例代码
2017/02/28 Javascript
微信小程序 实例开发总结
2017/04/26 Javascript
vue+express 构建后台管理系统的示例代码
2018/07/19 Javascript
如何基于vue-cli3.0构建功能完善的移动端架子
2019/04/24 Javascript
JavaScript静态作用域和动态作用域实例详解
2019/06/17 Javascript
更强大的vue ssr实现预取数据的方式
2019/07/19 Javascript
js实现图片3D轮播效果
2019/09/21 Javascript
在微信小程序中渲染HTML内容3种解决方案及分析与问题解决
2020/01/12 Javascript
vue实现登录功能
2020/12/31 Vue.js
python开发之thread实现布朗运动的方法
2015/11/11 Python
python中matplotlib实现最小二乘法拟合的过程详解
2017/07/11 Python
Python爬虫爬取新浪微博内容示例【基于代理IP】
2018/08/03 Python
Python饼状图的绘制实例
2019/01/15 Python
python函数修饰符@的使用方法解析
2019/09/02 Python
Python3.6 + TensorFlow 安装配置图文教程(Windows 64 bit)
2020/02/24 Python
在keras下实现多个模型的融合方式
2020/05/23 Python
波兰运动鞋网上商店:e-Sporting
2018/02/16 全球购物
会计专业毕业生自我鉴定
2013/10/29 职场文书
生产部统计员岗位职责
2014/01/05 职场文书
高中班主任评语大全
2014/04/25 职场文书
书香校园建设方案
2014/05/02 职场文书
党员先进性教育整改措施
2014/09/18 职场文书
幼儿园六一主持词开场白
2015/05/28 职场文书
运输公司工作总结
2015/08/11 职场文书
家长对孩子的寒假评语
2015/10/09 职场文书
java设计模式--三种工厂模式详解
2021/07/21 Java/Android
MySQL对数据表已有表进行分区表的实现
2021/11/01 MySQL