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键盘
May 02 Javascript
学习ExtJS accordion布局
Oct 08 Javascript
有趣的javascript数组定义方法
Sep 10 Javascript
JQuery防止退格键网页后退的实现代码
Mar 23 Javascript
JS实现带提示的星级评分效果完整实例
Oct 30 Javascript
jQuery中Datatables增加跳转到指定页功能
Feb 08 Javascript
vue2 如何实现div contenteditable=“true”(类似于v-model)的效果
Feb 08 Javascript
基于jQuery实现咖啡订单管理简单应用
Feb 10 Javascript
webpack学习教程之publicPath路径问题详解
Jun 17 Javascript
如何在JavaScript中谨慎使用代码注释
Jun 21 Javascript
js中火星坐标、百度坐标、WGS84坐标转换实现方法示例
Mar 02 Javascript
Vue+Element-U实现分页显示效果
Nov 15 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/08/06 PHP
解析yii数据库的增删查改
2013/06/20 PHP
php数组去重复数据示例
2014/02/25 PHP
用Laravel Sms实现laravel短信验证码的发送的实现
2018/11/29 PHP
Iframe thickbox2.0使用的方法
2009/03/05 Javascript
JavaScript中的isXX系列是否继续使用的分析
2011/04/16 Javascript
DWZ刷新dialog解决方法
2013/03/03 Javascript
JS.elementGetStyle(element, style)应用示例
2013/09/24 Javascript
js简单实现让文本框内容逐个字的显示出来
2013/10/22 Javascript
浅析JavaScript原型继承的陷阱
2013/12/03 Javascript
JavaScript插件化开发教程 (二)
2015/01/27 Javascript
JavaScript将数组转换成CSV格式的方法
2015/03/19 Javascript
javascript实现rgb颜色转换成16进制格式
2015/07/10 Javascript
实例代码详解javascript实现窗口抖动及qq窗口抖动
2016/01/04 Javascript
javascript Promise简单学习使用方法小结
2016/05/17 Javascript
JSON字符串和JSON对象相互转化实例详解
2017/01/05 Javascript
微信小程序教程系列之设置标题栏和导航栏(7)
2020/06/29 Javascript
详解node中创建服务进程
2017/05/09 Javascript
总结javascript三元运算符知识点
2018/09/28 Javascript
微信小程序与后台PHP交互的方法实例分析
2018/12/10 Javascript
Python 多核并行计算的示例代码
2017/11/07 Python
使用实现pandas读取csv文件指定的前几行
2018/04/20 Python
python中计算一个列表中连续相同的元素个数方法
2018/06/29 Python
python 异或加密字符串的实例
2018/10/14 Python
Python 实现数据结构-循环队列的操作方法
2019/07/17 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
2019/07/23 Python
Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例
2020/03/18 Python
基于HTML5 FileSystem API的使用介绍
2013/04/24 HTML / CSS
Expedia西班牙:预订酒店、机票、旅行和廉价度假套餐
2019/04/10 全球购物
Guess荷兰官网:美国服饰品牌
2020/01/22 全球购物
.NET现在共支持多少种语言
2014/02/26 面试题
配件采购员岗位职责
2013/12/03 职场文书
护士自荐信范文
2013/12/15 职场文书
2015年计生工作总结范文
2015/04/24 职场文书
授权协议书范本(3篇)
2019/10/15 职场文书
jquery插件实现悬浮的菜单
2021/04/24 jQuery