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 相关文章推荐
js调试系列 断点与动态调试[基础篇]
Jun 18 Javascript
教你如何在 Javascript 文件里使用 .Net MVC Razor 语法
Jul 23 Javascript
引用其它js时如何同时处理多个window.onload事件
Sep 02 Javascript
JavaScript中将数组进行合并的基本方法讲解
Mar 07 Javascript
jQuery获取select选中的option的value值实现方法
Aug 29 Javascript
BootStrap实现带有增删改查功能的表格(DEMO详解)
Oct 26 Javascript
JS常用算法实现代码
Nov 14 Javascript
Ionic 2 实现列表滑动删除按钮的方法
Jan 22 Javascript
Three.js如何用轨迹球插件(trackball)增加对模型的交互功能详解
Sep 25 Javascript
vue中Npm run build 根据环境传递参数方法来打包不同域名
Mar 29 Javascript
vue项目设置scrollTop不起作用(总结)
Dec 21 Javascript
JavaScript怎样在删除前添加确认弹出框?
May 27 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
77A一级收信机修理记
2021/03/02 无线电
jquery获取多个checkbox的值异步提交给php的方法
2015/06/24 PHP
php 判断页面或图片是否经过gzip压缩的方法
2017/04/05 PHP
php接口实现拖拽排序功能
2018/04/23 PHP
再谈Yii Framework框架中的事件event原理与应用
2020/04/07 PHP
javascript 进度条 实现代码
2009/07/30 Javascript
asp(javascript)全角半角转换代码 dbc2sbc
2009/08/06 Javascript
JQuery扩展插件Validate 3通过参数设置错误信息
2011/09/05 Javascript
js数组依据下标删除元素
2015/04/14 Javascript
浅谈jQuery构造函数分析
2015/05/11 Javascript
nodejs+express实现文件上传下载管理网站
2017/03/15 NodeJs
JS实现css hover操作的方法示例
2017/04/07 Javascript
利用canvas实现的加载动画效果实例代码
2017/07/05 Javascript
微信小程序promsie.all和promise顺序执行
2017/10/27 Javascript
JavaScript类的继承方法小结【组合继承分析】
2018/07/11 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
使用react context 实现vue插槽slot功能
2019/07/18 Javascript
javascript实现fetch请求返回的统一拦截
2019/12/22 Javascript
Javascript实现秒表计时游戏
2020/05/27 Javascript
webpack+vue-cil 中proxyTable配置接口地址代理操作
2020/07/18 Javascript
vue实现轮播图帧率播放
2021/01/26 Vue.js
[55:23]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
[01:55]TI9显影之尘系列 - Evil Geniuses
2019/08/22 DOTA
TensorFlow实现随机训练和批量训练的方法
2018/04/28 Python
对pandas里的loc并列条件索引的实例讲解
2018/11/15 Python
django xadmin action兼容自定义model权限教程
2020/03/30 Python
SVG实现多彩圆环倒计时效果的示例代码
2017/11/21 HTML / CSS
会计专业的自荐信
2013/12/12 职场文书
工商管理毕业生推荐信
2013/12/24 职场文书
我的中国梦口号
2014/06/16 职场文书
甜品店创业计划书
2014/08/14 职场文书
法人代表证明书
2014/09/18 职场文书
2014年组织部工作总结
2014/11/14 职场文书
2015年社区创卫工作总结
2015/04/21 职场文书
2015年设计师个人工作总结
2015/04/25 职场文书
2015年化工厂工作总结
2015/05/04 职场文书