老生常谈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 相关文章推荐
使用javascript访问XML数据的实例
Dec 27 Javascript
一个很酷的拖动层的js类,兼容IE及Firefox
Jun 23 Javascript
jquery数组之存放checkbox全选值示例代码
Dec 20 Javascript
JS、DOM和JQuery之间的关系示例分析
Apr 09 Javascript
JS中attr和prop属性的区别以及优先选择示例介绍
Jun 30 Javascript
JS获取图片高度宽度的方法分享
Apr 17 Javascript
JavaScript中的toUTCString()方法使用详解
Jun 12 Javascript
jQuery滚动插件scrollable.js用法分析
May 25 jQuery
JavaScript中立即执行函数实例详解
Nov 04 Javascript
electron demo项目npm install安装失败的解决方法
Feb 06 Javascript
javascript+css实现进度条效果
Mar 25 Javascript
原生js实现无缝轮播图效果
Jan 28 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上的memcache和memcached两个pecl库
2010/03/29 PHP
PHP文件操作详解
2016/12/30 PHP
JavaScript null和undefined区别分析
2009/10/14 Javascript
javascript学习笔记(十一) 正则表达式介绍
2012/06/20 Javascript
Jquery利用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
2014/02/12 Javascript
jQuery基于当前元素进行下一步的遍历
2014/05/20 Javascript
JavaScript检测字符串中是否含有html标签实现方法
2015/07/01 Javascript
JavaScript实现复制内容到粘贴板代码
2016/03/31 Javascript
ES6中新增的Object.assign()方法详解
2017/09/22 Javascript
原生js实现仿window10系统日历效果的实例
2017/10/31 Javascript
jQuery实现的滑块滑动导航效果示例
2018/06/04 jQuery
解决vue项目使用font-awesome,build后路径的问题
2018/09/01 Javascript
JavaScript数据结构与算法之二叉树添加/删除节点操作示例
2019/03/01 Javascript
tsconfig.json配置详解
2019/05/17 Javascript
js图片查看器插件用法示例
2019/06/22 Javascript
Element-UI+Vue模式使用总结
2020/01/02 Javascript
jQuery实现聊天对话框
2020/02/08 jQuery
vue打包npm run build时候界面报错的解决
2020/08/13 Javascript
详解Python中的__new__()方法的使用
2015/04/09 Python
基于Django实现日志记录报错信息
2019/12/17 Python
Pycharm导入anaconda环境的教程图解
2020/07/31 Python
python 如何停止一个死循环的线程
2020/11/24 Python
Python LMDB库的使用示例
2021/02/14 Python
S’well Bottle保温杯官网:绝缘不锈钢水瓶
2018/05/09 全球购物
J2EE是技术还是平台还是框架
2016/08/14 面试题
《草原》教学反思
2014/02/15 职场文书
学习经验交流会主持词
2014/04/01 职场文书
入党介绍人评语
2014/05/06 职场文书
社区务虚会发言材料
2014/10/20 职场文书
受资助学生感谢信
2015/01/21 职场文书
婚宴邀请函
2015/01/30 职场文书
不同意离婚上诉状
2015/05/23 职场文书
房屋产权证明书
2015/06/19 职场文书
六一儿童节致辞
2015/07/31 职场文书
openstack中的rpc远程调用的方法
2021/07/09 Python
游戏《东方异文石:爱亚利亚黎明》正式版发布
2022/04/03 其他游戏