老生常谈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 相关文章推荐
菜单效果
Oct 14 Javascript
innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等区别
Jun 29 Javascript
javascript开发技术大全-第3章 js数据类型
Jul 03 Javascript
Textarea与懒惰渲染实现代码
Jan 04 Javascript
Javascript实现苹果悬浮虚拟按钮
Apr 10 Javascript
Javascript中indexOf()和lastIndexOf应用方法实例
Aug 24 Javascript
Bootstrap基本插件学习笔记之模态对话框(16)
Dec 08 Javascript
快速掌握jquery分页插件jqPaginator的使用方法
Aug 09 jQuery
Vue下滚动到页面底部无限加载数据的示例代码
Apr 22 Javascript
JavaScript设计模式之享元模式实例详解
Jan 17 Javascript
vue+render+jsx实现可编辑动态多级表头table的实例代码
Apr 01 Javascript
在antd中setFieldsValue和defaultVal的用法
Oct 29 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脚本[带参数]的方法
2010/01/22 PHP
php基于curl扩展制作跨平台的restfule 接口
2015/05/11 PHP
top.location.href 没有权限 解决方法
2008/08/05 Javascript
JavaScript 高级篇之函数 (四)
2012/04/07 Javascript
jQuery .attr()和.removeAttr()方法操作元素属性示例
2013/07/16 Javascript
JS辨别访问浏览器判断是android还是ios系统
2014/08/19 Javascript
javascript性能优化之DOM交互操作实例分析
2015/12/12 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
2015/12/13 Javascript
详解JS中Array对象扩展与String对象扩展
2016/01/07 Javascript
关于Javascript回调函数的一个妙用
2016/08/29 Javascript
jQueryUI Datepicker组件设置日期高亮
2016/10/13 Javascript
javascript九宫格图片随机打乱位置的实现方法
2017/03/15 Javascript
JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)
2017/07/23 Javascript
JS获取input[file]的值并显示在页面的实现方法
2018/03/09 Javascript
JS使用tween.js动画库实现轮播图并且有切换功能
2018/07/17 Javascript
layuiAdmin循环遍历展示商品图片列表的方法
2019/09/16 Javascript
VSCode插件安装完成后的配置(常用配置)
2020/08/24 Javascript
[02:38]DOTA2亚洲邀请赛 IG战队巡礼
2015/02/03 DOTA
python连接mysql调用存储过程示例
2014/03/05 Python
Python下载网络文本数据到本地内存的四种实现方法示例
2018/02/05 Python
利用4行Python代码监测每一行程序的运行时间和空间消耗
2020/04/22 Python
浅谈keras中loss与val_loss的关系
2020/06/22 Python
德国珠宝和手表在线商店:VALMANO
2019/03/24 全球购物
Oakley西班牙官方商店:太阳眼镜和男女运动服
2019/04/26 全球购物
英国屋顶用品和材料超市:Roofing Supplies UK
2019/08/24 全球购物
匡威俄罗斯官网:Converse俄罗斯
2020/05/09 全球购物
J2ee常用的设计模式?说明工厂模式
2015/05/21 面试题
单位消防安全制度
2014/01/12 职场文书
常务副总经理岗位职责
2014/04/12 职场文书
2014感恩节演讲稿大全
2014/10/11 职场文书
检察院起诉书
2015/05/20 职场文书
幼儿园六一主持词开场白
2015/05/28 职场文书
庆元旦主持词
2015/07/06 职场文书
2015年安全生产月工作总结
2015/07/27 职场文书
python_tkinter事件类型详情
2022/03/20 Python
HTML中实现音乐或视频自动播放案例详解
2022/05/30 HTML / CSS