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 相关文章推荐
javascript如何动态加载表格与动态添加表格行
Nov 27 Javascript
走进javascript——不起眼的基础,值和分号
Feb 24 Javascript
JavaScript文件的同步和异步加载的实现代码
Aug 19 Javascript
javascript计算对象长度的方法
Oct 25 Javascript
vue 中引用gojs绘制E-R图的方法示例
Aug 24 Javascript
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
Aug 24 Javascript
在Vue中获取组件声明时的name属性方法
Sep 12 Javascript
VUE安装使用教程详解
Jun 03 Javascript
微信小程序简单的canvas裁剪图片功能详解
Jul 12 Javascript
vue 解决路由只变化参数页面组件不更新问题
Nov 05 Javascript
用Node写一条配置环境的指令
Nov 14 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
Apr 17 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 使用pcntl和libevent 实现Timer功能
2013/10/27 PHP
php中{}大括号是什么意思
2013/12/01 PHP
PHP浮点数精度问题汇总
2015/05/13 PHP
PHP中filter函数校验数据的方法详解
2015/07/31 PHP
WordPress中用于检索模版的相关PHP函数使用解析
2015/12/15 PHP
Laravel模型间关系设置分表的方法示例
2018/04/21 PHP
De facto standard 世界上不可思议的事实标准
2010/08/29 Javascript
深入理解JavaScript系列(1) 编写高质量JavaScript代码的基本要点
2012/01/15 Javascript
javascript相等运算符与等同运算符详细介绍
2013/11/09 Javascript
jQuery切换网页皮肤并保存到Cookie示例代码
2014/06/16 Javascript
javascript实现控制浏览器全屏
2015/03/30 Javascript
javascript正则表达式中的replace方法详解
2015/04/20 Javascript
JavaScript取得键盘按下方向键是哪个的方法
2015/08/04 Javascript
JavaScript进阶练习及简单实例分析
2016/06/03 Javascript
jquery中live()方法和bind()方法区别分析
2016/06/23 Javascript
浅谈js数组和splice的用法
2016/12/04 Javascript
node.js学习之断言assert的使用示例
2017/09/28 Javascript
JS实现点击链接切换显示隐藏内容的方法
2017/10/19 Javascript
webpack源码之loader机制详解
2018/04/06 Javascript
React diff算法的实现示例
2018/04/20 Javascript
小程序实现搜索框功能
2020/03/26 Javascript
layui监听工具栏的实例(操作列表按钮)
2019/09/10 Javascript
JS数组进阶示例【数组的几种函数用法】
2020/01/16 Javascript
用Python进行基础的函数式编程的教程
2015/03/31 Python
一键搞定python连接mysql驱动有关问题(windows版本)
2016/04/23 Python
Python实现一个带权无回置随机抽选函数的方法
2019/07/24 Python
对Python中一维向量和一维向量转置相乘的方法详解
2019/08/26 Python
python 画函数曲线示例
2019/12/04 Python
美国在线印刷公司:PsPrint
2017/10/12 全球购物
英国电信商店:BT Shop
2019/12/17 全球购物
奥地利时尚、美容、玩具和家居之家:Kastner & Öhler
2020/04/26 全球购物
小学教师寄语大全
2014/04/03 职场文书
2014镇副书记群众路线专题民主生活会思想汇报
2014/09/23 职场文书
群众路线学习心得体会范文
2014/11/05 职场文书
《司马光》教学反思
2016/02/22 职场文书
草系十大最强宝可梦,纸片人上榜,榜首大家最熟悉
2022/03/18 日漫