老生常谈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 技巧大全(新手入门篇)
May 12 Javascript
Javascript 日期处理之时区问题
Oct 08 Javascript
JS打开层/关闭层/移动层动画效果的实例代码
May 11 Javascript
window.location.href IE下跳转失效的解决方法
Mar 27 Javascript
javascript实现阻止iOS APP中的链接打开Safari浏览器
Jun 12 Javascript
jQuery实现的在线答题功能
Apr 12 Javascript
关于Vue Webpack2单元测试示例详解
Aug 14 Javascript
vue+swiper实现组件化开发的实例代码
Oct 26 Javascript
详解angularjs跨页面传参遇到的一些问题
Nov 01 Javascript
javascript自定义日期比较函数用法示例
Jul 22 Javascript
es6中reduce的基本使用方法
Sep 10 Javascript
Vue基本指令实例图文讲解
Feb 25 Vue.js
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中smarty变量修饰用法实例分析
2015/06/11 PHP
PHP超全局变量实现原理及代码解析
2020/09/01 PHP
JavaScript While 循环基础教程
2007/04/05 Javascript
ext 同步和异步示例代码
2009/09/18 Javascript
jQuery的实现原理的模拟代码 -5 Ajax
2010/08/07 Javascript
深入理解JavaScript系列(36):设计模式之中介者模式详解
2015/03/04 Javascript
JavaScript判断数组是否包含指定元素的方法
2015/07/01 Javascript
JavaScript编写简单的计算器
2015/11/25 Javascript
AngularJS基础 ng-keydown 指令简单示例
2016/08/02 Javascript
jQuery实现的表格展开伸缩效果实例
2016/09/07 Javascript
微信小程序 简单DEMO布局,逻辑,样式的练习
2016/11/30 Javascript
angular分页指令操作
2017/01/09 Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
2017/01/12 Javascript
jQuery DateTimePicker 日期和时间插件示例
2017/01/22 Javascript
JS区分Object与Aarry的六种方法总结
2017/02/27 Javascript
js实现悬浮窗效果(支持拖动)
2017/03/09 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
利用JS实现简单的瀑布流加载图片效果
2017/04/22 Javascript
Vue.js鼠标悬浮更换图片功能
2017/05/17 Javascript
Vue Ajax跨域请求实例详解
2017/06/20 Javascript
详解Vue + Vuex 如何使用 vm.$nextTick
2017/11/20 Javascript
使用淘宝镜像cnpm安装Vue.js的图文教程
2018/05/17 Javascript
vue实现歌手列表字母排序下拉滚动条侧栏排序实时更新
2019/05/14 Javascript
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
JavaScript实现的滚动公告特效【基于jQuery】
2019/07/10 jQuery
vuex入门最详细整理
2020/03/04 Javascript
JS实现简易日历效果
2021/01/25 Javascript
Python pymongo模块常用操作分析
2018/09/01 Python
python实现转圈打印矩阵
2019/03/02 Python
Python中的上下文管理器相关知识详解
2019/09/19 Python
python使用 __init__初始化操作简单示例
2019/09/26 Python
Keras 快速解决OOM超内存的问题
2020/06/11 Python
python 制作本地应用搜索工具
2021/02/27 Python
东方通信股份有限公司VC面试题
2014/08/27 面试题
2014年个人债务授权委托书范本
2014/09/22 职场文书
有限责任公司股东合作协议书范本
2014/10/30 职场文书