老生常谈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初学困境—js初学
Dec 29 Javascript
Javascript图像处理—亮度对比度应用案例
Jan 03 Javascript
按下Enter焦点移至下一个控件的实现js代码
Dec 11 Javascript
JavaScript按位运算符的应用简析
Feb 04 Javascript
extjs 分页使用jsp传递数据示例
Jul 29 Javascript
关于Vue.js一些问题和思考学习笔记(2)
Dec 02 Javascript
微信小程序 用户数据解密详细介绍
Jan 09 Javascript
angular forEach方法遍历源码解读
Jan 25 Javascript
利用Vue.js框架实现火车票查询系统(附源码)
Feb 27 Javascript
Vue.js结合Ueditor富文本编辑器的实例代码
Jul 11 Javascript
Angularjs之如何在跨域请求中传输Cookie的方法
Jun 01 Javascript
JavaScript函数式编程(Functional Programming)声明式与命令式实例分析
May 21 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
Breeze 文章管理系统 v1.0.0正式发布
2006/12/14 PHP
php中ob(Output Buffer 输出缓冲)函数使用方法
2007/07/21 PHP
php 随机排序广告的实现代码
2011/05/09 PHP
解析如何用php screw加密php源代码
2013/06/20 PHP
PHP实现读取一个1G的文件大小
2013/08/24 PHP
php+mysql+jquery实现简易的检索自动补全提示功能
2017/04/15 PHP
jQuery 美元符冲突的解决方法
2010/03/28 Javascript
JavaScript实现的一个日期格式化函数分享
2014/12/06 Javascript
JQuery插件ajaxfileupload.js异步上传文件实例
2015/05/19 Javascript
JavaScript设置表单上传时文件个数的方法
2015/08/11 Javascript
javascript实现起伏的水波背景效果
2016/05/16 Javascript
jQuery EasyUI 获取tabs的实例解析
2016/12/06 Javascript
JS使用正则实现去掉字符串左右空格的方法
2016/12/27 Javascript
Vue触发式全局组件构建的方法
2018/11/28 Javascript
微信小程序实现购物页面左右联动
2019/02/15 Javascript
vue在index.html中引入静态文件不生效问题及解决方法
2019/04/29 Javascript
Vue多环境代理配置方法思路详解
2019/06/21 Javascript
layui问题之模拟table表格中的选中按钮选中事件的方法
2019/09/20 Javascript
[05:15]2018年度CS GO社区贡献奖-完美盛典
2018/12/16 DOTA
Django 登陆验证码和中间件的实现
2018/08/17 Python
在pycharm 中添加运行参数的操作方法
2019/01/19 Python
学习Python列表的基础知识汇总
2020/03/10 Python
python多进程下的生产者和消费者模型
2020/05/07 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
2020/09/20 Python
python中turtle库的简单使用教程
2020/11/11 Python
英国经典球衣网站:Classic Football Shirts
2017/05/20 全球购物
给同事的道歉信
2014/01/11 职场文书
创先争优制度
2014/01/21 职场文书
军训考核自我鉴定
2014/02/13 职场文书
行政求职信
2014/07/04 职场文书
2014年银行柜员工作总结
2014/11/12 职场文书
夫妻忠诚协议范文
2014/11/16 职场文书
2014年度个人总结范文
2015/03/09 职场文书
计算机专业自荐信范文
2015/03/26 职场文书
springboot项目以jar包运行的操作方法
2021/06/30 Java/Android
mysql下的max_allowed_packet参数设置详解
2022/02/12 MySQL