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 开发中规范性的一点感想
Jun 23 Javascript
今天是星期几的4种JS代码写法
Sep 17 Javascript
全面理解面向对象的 JavaScript(来自ibm)
Nov 10 Javascript
JS控制图片翻转示例代码(兼容firefox,ie,chrome)
Dec 19 Javascript
JS实现简单的右下角弹出提示窗口完整实例
Jun 21 Javascript
angular 动态组件类型详解(四种组件类型)
Feb 22 Javascript
vue-resource拦截器设置头信息的实例
Oct 27 Javascript
vue中如何让子组件修改父组件数据
Jun 14 Javascript
node实现简单的增删改查接口实例代码
Aug 22 Javascript
关于layui的下拉搜索框异步加载数据的解决方法
Sep 28 Javascript
JS页面获取 session 值,作用域和闭包学习笔记
Oct 16 Javascript
解决vant-UI库修改样式无效的问题
Nov 03 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+MySQL的聊天室设计
2006/10/09 PHP
PHP的FTP学习(三)
2006/10/09 PHP
简单的php缓存类分享     php缓存机制
2014/01/22 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
2014/10/15 PHP
jquery插件珍藏(图片局部放大/信息提示框)
2013/01/08 Javascript
jquery中获取id值方法小结
2013/09/22 Javascript
JS获取URL中参数值(QueryString)的4种方法分享
2014/04/12 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
2016/07/01 Javascript
微信js-sdk上传与下载图片接口用法示例
2016/10/12 Javascript
DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
2016/11/09 Javascript
学习vue.js条件渲染
2016/12/03 Javascript
js实现时间轴自动排列效果
2017/03/09 Javascript
jQuery输入框密码的显示隐藏【代码分享】
2017/04/29 jQuery
bootstrap timepicker在angular中取值并转化为时间戳
2017/06/13 Javascript
jquery ajax异步提交表单数据的方法
2017/10/27 jQuery
详解无限滚动插件vue-infinite-scroll源码解析
2019/05/12 Javascript
使用p5.js临摹动态图片
2019/11/04 Javascript
Vue.js watch监视属性知识点总结
2019/11/11 Javascript
Python中lambda的用法及其与def的区别解析
2014/07/28 Python
Python的IDEL增加清屏功能实例
2017/06/19 Python
Python如何实现转换URL详解
2019/07/02 Python
Python 二叉树的层序建立与三种遍历实现详解
2019/07/29 Python
Apache部署Django项目图文详解
2019/07/30 Python
python 数据生成excel导出(xlwt,wlsxwrite)代码实例
2019/08/23 Python
在 Windows 下搭建高效的 django 开发环境的详细教程
2020/07/27 Python
SKECHERS官方旗舰店:美国舒适运动休闲品牌
2017/12/22 全球购物
如何做好总经理助理
2013/11/12 职场文书
高校自主招生自荐信
2013/12/09 职场文书
社区义诊活动总结
2014/04/30 职场文书
房展策划方案
2014/06/07 职场文书
党的群众路线教育实践活动个人对照检查材料(四风)
2014/11/05 职场文书
社区端午节活动总结
2015/02/11 职场文书
2015年社区综治工作总结
2015/04/21 职场文书
民事上诉状范文
2015/05/22 职场文书
大学生军训心得体会5篇
2019/08/15 职场文书
laravel ajax curd 搜索登录判断功能的实现
2021/04/17 PHP