位置: 编程技术 - 正文

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

  • 增值税专用发票的税率是多少啊
  • 固定资产中的动态投资包括
  • 提高资产利用率,增加销售收入
  • 定额的个体户需要汇算清缴吗
  • 开具运输发票应备注哪些内容
  • 小规模纳税人每个季度超过了30万怎么办
  • 负数增长到正数的例子
  • 为什么纳税申报
  • 可供出售权益工具投资公允价值的增加
  • 营改增后房地产公司税种及税率
  • 代理记账有什么风险吗
  • 纳税人提供应税服务的价格明显偏低
  • 有留抵税额要考虑税负吗
  • 加油票不打公司会怎么样
  • 小规模纳税人计提增值税
  • 合同中没有明确违约责任怎么办
  • 哪些出口业务不能做
  • 预收美元和发票的关系
  • 福利费用属于什么费用
  • 电子票据查询打印
  • 转让境外股权损失能否税前扣除
  • 应收票据计入应收账款吗
  • 政府奖励资金如何入账
  • 航天维护费全额抵扣
  • 如何阻止windows10升级到11
  • 临时工工资怎么处理
  • 去年的成本发票怎么做账
  • 什么叫毛利润和净利润
  • win10为什么毛病这么多
  • PHP:mb_ereg_search_init()的用法_mbstring函数
  • 经销商授权书是啥意思
  • mac如何在桌面显示我的电脑
  • 买支票需要带什么章
  • 动态定位
  • batchsize1
  • php有面向对象吗
  • vue .find
  • js中...的用法
  • 音乐制作人评刀郎新专辑
  • checksum 命令
  • 基建项目账务处理讲解
  • 金额太小不给开发票
  • 增值税普通发票查询真伪
  • js中同步如何理解
  • 差旅费报销范文
  • 关于sqlserver数据库服务器登录账户的说法错误的是
  • 个人所得税申报数
  • 生产成本与管理企业经营实战感想
  • 固定资产停产需要计提折旧吗
  • 请问申报残保金怎么操作
  • 税务局返还的个税手续费是否纳税
  • 高新企业税收减免多少
  • 基金可以一次性全部卖出吗
  • 资产减值哪些资产
  • 房地产预售款预交税金计算
  • 其他综合收益相反科目
  • 员工伤残补助会计分录
  • 费用预算表怎么做
  • 现金支票办理电话
  • vm虚拟机中的浏览器在哪
  • windows 打开文件命令
  • 解决的英文
  • win7电脑曝光度过高怎么调
  • 深入理解ffmpeg pdf
  • 怎样关闭android系统的内存不足的系统通知
  • unity 游戏开发教程
  • 学习英语
  • linux命令批量执行
  • 深入python3
  • Button.setOnClickListener(OnClickListener l) 原理
  • python设计作品
  • 怎样学好js中的逻辑
  • jquery实现图片放大
  • jquery绑定数据
  • 开发区税务局咨询电话
  • 软件销售增值税优惠
  • 地方税务局部门有哪些
  • 上海社保联网
  • 税务局基层党建工作汇报
  • 江苏地税局如何交社保
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设