位置: 编程技术 - 正文

jquery事件绑定解绑机制源码解析(jquery中绑定和解绑的事件有哪些)

编辑:rootadmin

推荐整理分享jquery事件绑定解绑机制源码解析(jquery中绑定和解绑的事件有哪些),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:jquery事件绑定方法,jquery绑定onchange事件的方法,jquery常用的事件绑定函数有哪些,jquery绑定事件和移除事件,jquery中绑定和解绑的事件有哪些,jquery绑定事件和移除事件,jquery中绑定和解绑的事件有哪些,jquery中绑定和解绑的事件有哪些,内容如对您有帮助,希望把文章链接给更多的朋友!

引子

为什么Jquery能实现不传回调函数也能解绑事件?如下:

事件绑定解绑机制

调用on函数的时候,将生成一份事件数据,结构如下:

并将该数据加入到元素的缓存中。jquery中每个元素都可以有一个缓存(只有有需要的时候才生成),其实就是该元素的一个属性。jquery为每个元素的每种事件都建立一个队列,用来保存事件处理函数,所以可以对一个元素添加多个事件处理函数。缓存的结构如下:

当要解绑事件的时候,如果没指定fn参数,jquery就会从该元素的缓存里拿到要解绑的事件的处理函数队列,从里面拿出fn参数,然后调用removeEventListener进行解绑。

源代码

jquery事件绑定解绑机制源码解析(jquery中绑定和解绑的事件有哪些)

代码注释可能不太清楚,可以复制出来看

jquery原型中的on,one,off方法:

事件绑定从这里开始

独立出来供one和on调用的on函数:

处理参数的代码也可以看一下,实现on("click",function(){})这样调用 on:function(types, selector, data, fn)也不会出错。其实就是内部判断,如果data, fn参数为空的时候,把selector赋给fn

event对象是事件绑定的一个关键对象:

这里处理把事件绑定到元素和把事件信息添加到元素缓存的工作:

千万注意,对象和数组传的是引用!比如将事件数据保存到缓存的代码:

handlers的改变,events[ type ]会同时改变。

dataPriv就是管理缓存的对象:

其工作就是给元素创建一个属性,这个属性是一个对象,然后把与这个元素相关的信息放到这个对象里面,缓存起来。这样需要使用到这个对象的信息时,只要知道这个对象就可以拿到:

标签: jquery中绑定和解绑的事件有哪些

本文链接地址:https://www.jiuchutong.com/biancheng/382011.html 转载请保留说明!

上一篇:Query常用DIV操作获取和设置长度宽度的实现方法(div.remove)

下一篇:在Web项目中引入Jquery插件报错的完美解决方案(图解)(在web项目中引入什么)

  • 清退加班费
  • 融资租入的固定资产需要计提折旧吗
  • 税务现金流量表怎么填
  • 个体工商户个税税率表2023年
  • 小规模印花税计税金额是什么
  • 预算分配比例与国库不一样
  • 其他业务利润怎么算公式
  • 公司偷税漏税是当事人责任大还是法人责任大
  • 建筑行业未收款先开发票如何做账?
  • 公司交的拍卖费计入哪个会计科目?
  • 企业的完工产品是指
  • 非盈利组织捐赠支出
  • 收回委托加工物资的实际成本
  • 生产企业成本核算流程及案例
  • 建筑企业异地预缴工会经费
  • 材料成本差异率要算发出材料吗
  • 防洪保安基金应用范围
  • 工商年报网上申报要钱吗
  • 什么是现金购房
  • win7如何取消关机
  • kindeditor vue
  • 孕妇能吃桂圆吗有什么好处
  • unity默认存储路径
  • 冲减管理费用是什么意思
  • php7异常处理
  • 业务实际发生没得取得发票怎么做账
  • php两个$什么意思
  • 企业常见的筹资方式有几种
  • excel导出exe
  • 现金流量表结构分析
  • 维多利亚国家艺术馆
  • 国内旅客运输服务普票可以抵扣吗
  • 第十七届全国大学生智能车
  • ChatGPT的火爆出圈,你对它有几分了解?
  • 公允价值变动损益怎么算出来的
  • 使用spring可以实现声明式事务吗
  • 建筑行业预交增值税怎么结转
  • 天猫一般纳税人如何纳税
  • 收到专票不认证不抵扣可以吗
  • 利息支出会计科目
  • 母公司资产包括子公司吗
  • 在建工程账务核算及处理
  • 借款需要缴纳个人所得税吗
  • 免征增值税的会计处理
  • 土地使用权被政府收回要交个税吗
  • 即征即退增值税需要缴纳所得税吗
  • 收购发票如何确认成本
  • 企业一次性伤残就业补助金是由保险赔付吗
  • 增值税进项发票如何做账
  • 产品检测费怎么入账
  • 汇率调节主要手段
  • 被收购企业账务怎么处理
  • 管理不善造成的存货盘亏损失计入什么科目
  • 长期挂账的其他应付款税务风险
  • mysql理论知识
  • window组策略
  • 包含正在使用的windows版本 无法格式化
  • ubuntu如何创建文件
  • 手机苹果操作系统
  • debian7安装教程
  • window8更新10
  • windows升级10
  • vsftpd.log
  • win7的注册表在哪里打开
  • unity 漫反射
  • android入门书
  • AndroidAnnotations 自定义控件 ant编译 找不到类
  • 可实现的系统
  • javascript数学函数
  • 防止sql注入php
  • js的prepend
  • 相机调取失败
  • Python函数中仅允许有一条return语句
  • js字符串的操作方法
  • js 输入
  • jQuery UI结合Ajax创建可定制的Web界面
  • 非营利组织认定条件
  • 护肤品关税税率
  • 税控发票开票系统对电脑配置有要求吗?
  • 主管单位申请书
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设