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 相关文章推荐
dojo 之基础篇
Mar 24 Javascript
封装了一个js图片轮换效果的函数
Sep 28 Javascript
jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)
Mar 22 Javascript
js插件设置innerHTML时在IE8下提示“未知运行时错误”解决方法
Apr 25 Javascript
JavaScript中的boolean布尔值使用学习及相关技巧讲解
May 26 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
Dec 08 Javascript
原生javascript实现分页效果
Apr 21 Javascript
vue回到顶部监听滚动事件详解
Aug 02 Javascript
vue从一个页面跳转到另一个页面并携带参数的解决方法
Aug 12 Javascript
Vue路由对象属性 .meta $route.matched详解
Nov 04 Javascript
vue计算属性无法监听到数组内部变化的解决方案
Nov 06 Javascript
微信小程序学习之自定义滚动弹窗
Dec 20 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学习之简单计算器实现代码
2011/06/09 PHP
php中json_encode UTF-8中文乱码的更好解决方法
2014/09/28 PHP
初识Laravel
2014/10/30 PHP
CSS+Table图文混排中实现文本自适应图片宽度(超简单+跨所有浏览器)
2009/02/14 Javascript
javascript attachEvent和addEventListener使用方法
2009/03/19 Javascript
让IE6支持min-width和max-width的方法
2010/06/25 Javascript
javascript常见操作汇总
2014/09/03 Javascript
Javascript中的匿名函数与封装介绍
2015/03/15 Javascript
jQuery实现文本展开收缩特效
2015/06/03 Javascript
JavaScript中各种引用类型的常用操作方法小结
2016/05/05 Javascript
移动端日期插件Mobiscroll.js使用详解
2016/12/19 Javascript
使用veloticy-ui生成文字动画效果
2018/02/08 Javascript
vue+vue-router转场动画的实例代码
2018/09/01 Javascript
Vuejs开发环境搭建及热更新【推荐】
2018/09/07 Javascript
使用Javascript简单计算器
2018/11/17 Javascript
VUE安装使用教程详解
2019/06/03 Javascript
React实现类似淘宝tab居中切换效果的示例代码
2020/06/02 Javascript
mpvue 项目初始化及实现授权登录的实现方法
2020/07/20 Javascript
Vue3为什么这么快
2020/09/23 Javascript
[51:43]OG vs LGD 2018国际邀请赛淘汰赛BO3 第五场 8.26
2018/08/30 DOTA
[01:06] DOTA2英雄背景故事第三期之秩序法则光之守卫
2020/07/07 DOTA
python Django模板的使用方法(图文)
2013/11/04 Python
python中import学习备忘笔记
2017/01/24 Python
Python查找两个有序列表中位数的方法【基于归并算法】
2018/04/20 Python
利用python求积分的实例
2019/07/03 Python
浅析python内置模块collections
2019/11/15 Python
利用Python如何画一颗心、小人发射爱心
2021/02/21 Python
一些常用的HTML5模式(pattern) 总结
2015/07/14 HTML / CSS
uniapp+Html5端实现PC端适配
2020/07/15 HTML / CSS
Origins加拿大官网:雅诗兰黛集团高端植物护肤品牌
2017/11/19 全球购物
西部世纪面试题
2014/12/05 面试题
开工仪式策划方案
2014/05/23 职场文书
公司周年庆活动方案
2014/08/25 职场文书
离婚协议书范本
2015/01/26 职场文书
党员观看《筑梦中国》心得体会
2016/01/18 职场文书
2016先进工作者事迹材料
2016/02/25 职场文书