位置: 编程技术 - 正文

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项目中引入什么)

  • 向税务局申请发票增量增额怎么写
  • 共享税种
  • 应交增值税二级科目借贷方向
  • 我国会计准则规定,会计核算以人民币为记账本位币
  • 计提企业所得税分录
  • 其他权益性资产包括哪些
  • 企业购进软件系统后如何做账
  • 工资发放流程以及如何记账
  • 食堂外包服务费
  • 纳税申报表销售额可以是负数吗
  • 增值税专用发票的税率是多少啊
  • 运输费用和保险费用会计分录
  • 顾客办理会员卡要退怎么办
  • 出口退税的办理影响出口吗
  • 营改增后企业所得税
  • 个税少报有什么后果
  • valorant!
  • 无法卸载系统更新 backup
  • 旅客购买电子客票
  • 移动操作系统有哪些主要特点和功能
  • G40/50-70、SR1000随机Linux改安装Win7系统的实现方法
  • 个人股权分红如何缴税
  • 材料成本差异如何理解
  • 分配股利什么时候做账
  • go dll
  • 下载文件是php
  • 招聘退休人员北京宿管
  • jsoup js
  • 发票融资会计处理
  • 其他收益算营业成本吗
  • 公司进项不够怎么开发票
  • 哪些增值税发票不可以抵扣
  • 残疾人保证金的滞纳金怎么计算
  • 帝国cms怎么增加子栏目
  • java线程的四种基本状态
  • 预缴个人所得税怎么做分录
  • mongodb数据查询
  • 无形资产减值准备可以转回吗
  • 事业单位成本核算具体指引—公立医院
  • 会计期末业务有哪些?
  • sqlserver数据库大小于对索引有影响吗?
  • 交易性金融资产公允价值变动怎么算
  • 代扣代缴的个税可以税前扣除吗
  • 递延所得税资产是什么意思
  • 政府补助的范围
  • 去年一个月工资未计提直接计入成本,现在如何调整
  • 技术报酬金是什么意思
  • 不能抵扣的福利费
  • 如何在个人所得税app上修改扣缴义务人
  • 不动产进项税额抵扣从什么时候开始
  • 工会经费怎么计提及使用
  • 员工垫付的费用会计分录
  • 递延纳税筹划策略研究
  • 专用发票给客户的都要盖章吗
  • 怎么从会计小白做到总账会计
  • 明细账模版
  • mysql删除方法
  • windows2003企业版sp2密钥
  • debian系列
  • spoolsv.exe是什么文件
  • linux mount命令详解
  • win7访问共享文件
  • Win10 Mobile 10586升级后无限重启怎么办 硬重启帮您解决
  • centos部署django项目
  • win8 系统恢复
  • vue条形码
  • jquery easyui开发指南
  • ml命令
  • unity3d需要什么语言
  • 表单元素的属性
  • shell遍历sql查询结果
  • unity 3.0
  • nodejs集成sqlite使用示例
  • android面试题网站
  • 简单的智能家居
  • 莱鸟人集团
  • java script
  • 年收入12w
  • 国家税务局机打发票可以报销吗
  • 如何在河南省社会保障网上平台进行社保基数申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设