老生常谈js动态添加事件--- 事件委托


Posted in Javascript onJuly 19, 2016

其所谓的动态添加事件实质就是指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');
});

以上这篇老生常谈js动态添加事件--- 事件委托就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
几个高效,简洁的字符处理函数
Apr 12 Javascript
jQuery .tmpl() 用法示例介绍
Aug 21 Javascript
JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决
Nov 11 Javascript
JS仿京东移动端手指拨动切换轮播图效果
Apr 10 Javascript
微信小程序教程系列之新建页面(4)
Apr 17 Javascript
在bootstrap中实现轮播图实例代码
Jun 11 Javascript
webpack2.0配置postcss-loader的方法
Aug 17 Javascript
vuejs实现递归树型菜单组件
Jan 13 Javascript
Vue 开发音乐播放器之歌手页右侧快速入口功能
Aug 08 Javascript
Angularjs Ng_repeat中实现复选框选中并显示不同的样式方法
Sep 12 Javascript
Vue2.x Todo之自定义指令实现自动聚焦的方法
Jan 08 Javascript
解决Layui中layer报错的问题
Sep 03 Javascript
Bootstrap表单布局
Jul 19 #Javascript
一次$.getJSON不执行的简单记录
Jul 19 #Javascript
深入浅析javascript中的作用域(推荐)
Jul 19 #Javascript
javascript弹出带文字信息的提示框效果
Jul 19 #Javascript
总结在前端排序中遇到的问题
Jul 19 #Javascript
ECMAScript6快速入手攻略
Jul 18 #Javascript
JavaScript读二进制文件并用ajax传输二进制流的方法
Jul 18 #Javascript
You might like
无数据库的详细域名查询程序PHP版(4)
2006/10/09 PHP
发布一个迷你php+AJAX聊天程序[聊天室]提供下载
2007/07/21 PHP
php学习 函数 课件
2008/06/15 PHP
调整PHP的性能
2013/10/30 PHP
深入浅析php json 格式控制
2015/12/24 PHP
JQUBAR1.1 jQuery 柱状图插件发布
2010/11/28 Javascript
jQuery插件的写法分享
2013/06/12 Javascript
JQuery记住用户名和密码的具体实现
2014/04/04 Javascript
浅谈JavaScript中定义变量时有无var声明的区别
2014/08/18 Javascript
14个有用的Jquery技巧分享
2015/01/08 Javascript
JSON格式的键盘编码对照表
2015/01/29 Javascript
自定义百度分享的分享按钮
2015/03/18 Javascript
window.location.hash知识汇总
2015/11/09 Javascript
FullCalendar日历插件应用之数据展现(一)
2015/12/23 Javascript
Web前端开发工具——bower依赖包管理工具
2016/03/29 Javascript
JavaScript实现经典排序算法之冒泡排序
2016/12/28 Javascript
微信小程序实现YDUI的ScrollTab组件
2018/02/02 Javascript
vue-cli脚手架引入图片的几种方法总结
2018/03/13 Javascript
JavaScript实现淘宝京东6位数字支付密码效果
2018/08/18 Javascript
node删除、复制文件或文件夹示例代码
2019/08/13 Javascript
从Node.js事件触发器到Vue自定义事件的深入讲解
2020/06/26 Javascript
JavaScript中window和document用法详解
2020/07/28 Javascript
JS实现手风琴特效
2020/11/08 Javascript
[02:30]联想杯DOTA2完美世界全国高校联赛—北京站现场
2015/11/16 DOTA
python的文件操作方法汇总
2017/11/10 Python
Django admin美化插件suit使用示例
2017/12/12 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
2019/02/13 Python
python pytest进阶之xunit fixture详解
2019/06/27 Python
jupyter notebook 添加kernel permission denied的操作
2020/04/21 Python
CSS3媒体查询Media Queries基础学习教程
2016/02/29 HTML / CSS
波兰在线儿童和婴儿用品零售商:pinkorblue
2019/06/29 全球购物
最新离婚协议书范本
2014/08/19 职场文书
2014年体育工作总结
2014/11/24 职场文书
比赛主持人开场白
2015/05/29 职场文书
酒店温馨提示语
2015/07/14 职场文书
zabbix配置nginx监控的实现
2022/05/25 Servers