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提交并解析后台返回的XML的代码
Nov 03 Javascript
jQuery动态添加的元素绑定事件处理函数代码
Aug 02 Javascript
jquery实现div阴影效果示例代码
Sep 16 Javascript
5秒后跳转到另一个页面的js代码
Oct 12 Javascript
JavaScript中的alert()函数使用技巧详解
Dec 29 Javascript
JS+CSS实现实用的单击输入框弹出选择框的方法
Feb 28 Javascript
jQuery图片特效插件Revealing实现拉伸放大
Apr 22 Javascript
基于jquery实现的仿优酷图片轮播特效代码
Jan 13 Javascript
Easyui使用Dialog行内按钮布局的实例
Jul 27 Javascript
Vue头像处理方案小结
Jul 26 Javascript
JavaScript事件对象深入详解
Dec 30 Javascript
vue路由对不同界面进行传参及跳转的总结
Apr 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 上传文件大小限制
2009/07/05 PHP
模板引擎正则表达式调试小技巧
2011/07/20 PHP
PHP语法小结之基础和变量
2015/11/22 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
2016/12/15 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
phpinfo无法显示的原因及解决办法
2019/02/15 PHP
YII2.0框架行为(Behavior)深入详解
2019/07/26 PHP
Juqery Html(),append()等方法的Bug解决方法
2010/12/13 Javascript
jquery制作弹窗提示窗口代码分享
2014/03/02 Javascript
使用jQuery中的when实现多个AJAX请求对应单个回调的例子分享
2014/04/23 Javascript
使用Javascript简单实现图片无缝滚动
2014/12/05 Javascript
JavaScript DSL 流畅接口(使用链式调用)实例
2015/03/15 Javascript
JQuery的Pager分页器实现代码
2016/05/03 Javascript
jQuery插件Easyui设置datagrid的pageNumber导致两次请求问题的解决方法
2016/08/06 Javascript
手机浏览器 后退按钮强制刷新页面方法总结
2016/10/09 Javascript
JS button按钮实现submit按钮提交效果
2016/11/01 Javascript
详解JavaScript RegExp对象
2017/02/04 Javascript
vue2组件实现懒加载浅析
2017/03/29 Javascript
使用 NodeJS+Express 开发服务端的简单介绍
2017/04/07 NodeJs
快速解决bootstrap下拉菜单无法隐藏的问题
2018/08/10 Javascript
JS加密插件CryptoJS实现的Base64加密示例
2020/08/16 Javascript
详解适配器在JavaScript中的体现
2018/09/28 Javascript
详解Node.js 中使用 ECDSA 签名遇到的坑
2018/11/26 Javascript
在Vue中使用antv的示例代码
2020/06/29 Javascript
[01:19:23]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第二场
2018/04/06 DOTA
[45:52]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第二场 12.09
2020/12/12 DOTA
Python中的defaultdict模块和namedtuple模块的简单入门指南
2015/04/01 Python
python pandas dataframe 按列或者按行合并的方法
2018/04/12 Python
python标准库sys和OS的函数使用方法与实例详解
2020/02/12 Python
企业精细化管理实施方案
2014/03/23 职场文书
2014年全国爱牙日宣传活动方案
2014/09/21 职场文书
学习三严三实对照检查材料思想汇报
2014/09/22 职场文书
2015个人简历自我评价语
2015/03/11 职场文书
如何理解Vue简单状态管理之store模式
2021/05/15 Vue.js
python自动化测试之Selenium详解
2022/03/13 Python
SpringCloud项目如何解决log4j2漏洞
2022/04/10 Java/Android