老生常谈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 相关文章推荐
jQuery 判断页面元素是否存在的代码
Aug 14 Javascript
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
Nov 20 Javascript
JavaScript中常用的运算符小结
Jan 18 Javascript
Underscore.js 的模板功能介绍与应用
Dec 24 Javascript
node.js中的fs.read方法使用说明
Dec 17 Javascript
angularJS 中$attrs方法使用指南
Feb 09 Javascript
详解JavaScript对象序列化
Jan 19 Javascript
JS正则RegExp.test()使用注意事项(不具有重复性)
Dec 28 Javascript
jQuery+ajax实现局部刷新的两种方法
Jun 08 jQuery
Vue通过URL传参如何控制全局console.log的开关详解
Dec 07 Javascript
AngularJS实现的根据数量与单价计算总价功能示例
Dec 26 Javascript
js中Function引用类型常见有用的方法和属性详解
Dec 11 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中使用接口实现工厂设计模式的代码
2012/06/17 PHP
php调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
2012/08/08 PHP
php Hex RGB颜色值互换的使用
2013/05/10 PHP
thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解
2019/07/15 PHP
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
基于jquery的表格排序
2010/09/11 Javascript
Jquery工作常用实例 使用AJAX使网页进行异步更新
2011/07/26 Javascript
对new functionName()定义一个函数的理解
2014/05/22 Javascript
javascript数组去重方法终极总结
2014/06/05 Javascript
纯javascript版日历控件
2016/11/24 Javascript
Angular.JS判断复选框checkbox是否选中并实时显示
2016/11/30 Javascript
jquery-file-upload 文件上传带进度条效果
2017/11/21 jQuery
JavaScript原型链与继承操作实例总结
2018/08/24 Javascript
vue+element-ui动态生成多级表头的方法
2018/08/28 Javascript
vue项目中锚点定位替代方式
2019/11/13 Javascript
javascript 数组精简技巧小结
2020/02/26 Javascript
基于JS实现视频上传显示进度条
2020/05/12 Javascript
vue实现单一筛选、删除筛选条件
2020/10/26 Javascript
Python实现的简单文件传输服务器和客户端
2015/04/08 Python
Python内建模块struct实例详解
2018/02/02 Python
Python批量提取PDF文件中文本的脚本
2018/03/14 Python
pytorch训练imagenet分类的方法
2018/07/27 Python
Python 存储字符串时节省空间的方法
2019/04/23 Python
Python使用微信itchat接口实现查看自己微信的信息功能详解
2019/08/22 Python
使用django和vue进行数据交互的方法步骤
2019/11/11 Python
怎样比较两个类型为String的字符串
2016/08/17 面试题
六查六看剖析材料
2014/02/15 职场文书
五水共治捐款倡议书
2014/05/14 职场文书
李培根演讲稿
2014/05/22 职场文书
祖国在我心中演讲稿450字
2014/09/05 职场文书
装饰技术负责人岗位职责
2015/04/13 职场文书
警告通知
2015/04/25 职场文书
5分钟教你docker安装启动redis全教程(全新方式)
2021/05/29 Redis
HTML5页面音频自动播放的实现方式
2021/06/21 HTML / CSS
MySQL批量更新不同表中的数据
2022/05/11 MySQL
python语言中pandas字符串分割str.split()函数
2022/08/05 Python