位置: 编程技术 - 正文

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

  • 实收资本印花税按次还是按年
  • 小型微利企业所得税率
  • 餐饮企业购入的啤酒不拿消费税吗
  • 什么叫关税完税价
  • 交通运输印花税怎么申报
  • 企业所得税怎么做账
  • 税控盘退费怎么做会计分录
  • 小规模纳税人如何升级为一般纳税人
  • 企业注销了,报表的银行存款还有余额
  • 库存商品赠送给客户要开票吗
  • 年末本年利润结转未分配利润
  • 主营业务收入具体是什么
  • 企业工会经费不足,可以向企业拨款吗
  • 通用机打发票现在还有吗
  • 异地工程缴纳增值税
  • 自来水费缴纳后多久来水
  • 业务招揽方式
  • 会计档案保管最新规定
  • 房地产企业税负率
  • 拆迁公司属于什么性质
  • 归还法人前期垫付款项
  • 升级声卡驱动后声音禁用了怎么恢复
  • windows7为什么不能用了
  • php 反射
  • 冲减预付账款会计分录
  • uniapp小程序自定义tabbar在iOS手机上太高了
  • Win10如何去掉桌面快捷方式的箭头
  • bellzee.exe是什么
  • 预缴税款会计处理分录
  • 怎么租一个月
  • 税务新政策解读
  • html可以描述什么
  • 保险补偿金额的计算
  • 国有企业收到财政补助如何做账
  • 基于springboot的oa
  • 富文本编辑器使用
  • cmd more命令
  • 发票明细怎么导出数量
  • 企业提取盈余公积属于什么会计科目
  • 小企业短期借款科目的贷方登记
  • 工商登记备案在哪查
  • mongodb基础知识
  • 印花税漏交了有什么影响
  • 个体工商户经营所得税税率表2023年
  • 增值税专用发票查询系统官方网站
  • 应付账款主要账户有哪些
  • 收到银行开具的利息发票怎么做账
  • 企业购买商场的资本金要求是多少
  • 房屋租赁费如何结转成本
  • 收取加盟费的账户是什么
  • 以前年度销售退回买方账务处理
  • 什么是利润表?其作用有哪些?
  • 股权转让 会计
  • mysql column is ambiguous
  • win7安装mysql5.5
  • mysql数据库的基本原理
  • win7系统中怎么卸载安装的软件
  • 注册表 命令
  • microsoft skypeapp
  • centos发送http请求
  • 刻录ghost安装光盘
  • win10清理系统盘垃圾
  • centos删除vg
  • win10系统将IIS服务器发送到桌面快捷方式方法
  • win7系统开机后桌面黑屏
  • opengl geometry shader
  • xtemplate node.js 的使用方法实例解析
  • js链式编程的原理
  • 原生js import
  • system命令行
  • nodejs使用es6
  • unityprefab
  • 深入理解python特性
  • 创建简单的Web网页实验总结ASP
  • python async
  • 不动产租赁和经营租赁税率是多少
  • 江苏省职工医保门诊报销比例
  • 单位车辆购置税怎么申报缴纳
  • 城建税教育费附加怎么做分录
  • 房产增值税和土地增值税的区别案例
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设