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 相关文章推荐
转一个日期输入控件,支持FF
Apr 27 Javascript
js href的用法
May 13 Javascript
Jquery+ajax请求data显示在GridView上(asp.net)
Aug 27 Javascript
JS组件Bootstrap ContextMenu右键菜单使用方法
Apr 17 Javascript
分享12个非常实用的JavaScript小技巧
May 11 Javascript
jquery 无限极下拉菜单的简单实例(精简浓缩版)
May 31 Javascript
浅谈js控制li标签排序问题 js调用php函数的方法
Oct 16 Javascript
BootStrap 获得轮播中的索引和当前活动的焦点对象
May 11 Javascript
vue下拉菜单组件(含搜索)的实现代码
Nov 25 Javascript
Angular CLI 使用教程指南参考小结
Apr 10 Javascript
js最全的数组的降维5种办法(小结)
Apr 28 Javascript
在vs code 中如何创建一个自己的 Vue 模板代码
Nov 10 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
我的论坛源代码(三)
2006/10/09 PHP
php使用百度ping服务代码实例
2014/06/19 PHP
php使用unset()删除数组中某个单元(键)的方法
2015/02/17 PHP
php运行报错Call to undefined function curl_init()的最新解决方法
2016/11/20 PHP
详解PHP处理密码的几种方式
2016/11/30 PHP
地震发生中逃生十大法则
2008/05/12 Javascript
IE和FireFox(FF)中js和css的不同
2009/04/13 Javascript
JS下拉缓冲菜单示例代码
2013/08/30 Javascript
JavaScript中的无阻塞加载性能优化方案
2014/10/10 Javascript
JavaScript返回0-1之间随机数的方法
2015/04/06 Javascript
javascript实现的图片切割多块效果实例
2015/05/07 Javascript
JavaScript实现打字效果的方法
2015/07/10 Javascript
JS获取鼠标坐标位置实例分析
2016/01/20 Javascript
修改 bootstrap table 默认detailRow样式的实例代码
2017/07/21 Javascript
基于vue手写tree插件的那点事儿
2019/08/20 Javascript
浅谈小程序globalData的那些事儿
2019/11/01 Javascript
JavaScript函数重载操作实例浅析
2020/05/02 Javascript
vue+elementui实现点击table中的单元格触发事件--弹框
2020/07/18 Javascript
简单的Python抓taobao图片爬虫
2014/10/26 Python
Django model select的多种用法详解
2019/07/16 Python
Django框架之DRF 基于mixins来封装的视图详解
2019/07/23 Python
基于pytorch 预训练的词向量用法详解
2020/01/06 Python
浅谈python3 构造函数和析构函数
2020/03/12 Python
零基础小白多久能学会python
2020/06/22 Python
世界上最大的售后摩托车零配件超市:J&P Cycles
2017/12/08 全球购物
运动会广播稿50字
2014/01/26 职场文书
思想品德自我评价
2014/02/04 职场文书
村党支部书记承诺书
2014/05/29 职场文书
银行青年文明号事迹材料
2014/05/31 职场文书
2014个人四风对照检查材料思想汇报
2014/09/18 职场文书
优秀大学生事迹材料
2014/12/24 职场文书
小学国庆节活动总结
2015/03/23 职场文书
开学典礼观后感
2015/06/15 职场文书
八年级作文之感悟亲情
2019/11/20 职场文书
Java循环队列与非循环队列的区别总结
2021/06/22 Java/Android
JavaScript设计模式之原型模式详情
2022/06/21 Javascript