事件操作相关方法

  • on(type, callback)

注册事件

1.注册多个相同类型事件, 后注册的不会覆盖先注册的
2.注册多个不同类型事件, 后注册的不会覆盖先注册的

on: function (name, callBack) {// 1.遍历取出所有元素this.each(function (key, ele) {// 2.判断当前元素中是否有保存所有事件的对象if(!ele.eventsCache){ele.eventsCache = {};}// 3.判断对象中有没有对应类型的数组if(!ele.eventsCache[name]){ele.eventsCache[name] = [];// 4.将回调函数添加到数据中ele.eventsCache[name].push(callBack);// 5.添加对应类型的事件njQuery.addEvent(ele, name, function () {njQuery.each(ele.eventsCache[name], function (k, method) {method.call(ele);});});}else{// 6.将回调函数添加到数据中ele.eventsCache[name].push(callBack);}});return this;
},
  • off(type, callback)

移出事件

1.不传参, 会移除所有事件
2.传递一个参数, 会移除对应类型所有事件
3.传递两个参数, 会移除对应类型对应事件

off: function (name, callBack) {// 1.判断是否没有传入参数if(arguments.length === 0){this.each(function (key, ele) {ele.eventsCache = {};});}// 2.判断是否传入了一个参数else if(arguments.length === 1){this.each(function (key, ele) {ele.eventsCache[name] = [];});}// 3.判断是否传入了两个参数else if(arguments.length === 2){this.each(function (key, ele) {njQuery.each(ele.eventsCache[name], function (index, method) {// 判断当前遍历到的方法和传入的方法是否相同if(method === callBack){ele.eventsCache[name].splice(index,  1);}});});}return this;
}

[jQuery原理] jQuery事件操作相关方法相关推荐

  1. [jQuery原理] jQuery属性操作相关方法

    属性操作相关方法 attr() 设置或者获取元素的属性节点值 attr: function (attr, value) {// 1.判断是否是字符串if(njQuery.isString(attr)) ...

  2. [jQuery原理] jQuery入口函数

    入口函数测试 传入 '' null undefined NaN 0 false 会返回一个空的jQuery对象给我们 console.log($()); console.log($('')); con ...

  3. [jQuery原理] jQuery基本结构

    1.jQuery的本质是一个闭包 2.jQuery为什么要使用闭包来实现? 为了避免多个框架的冲突 3.jQuery如何让外界访问内部定义的局部变量 window.xxx = xxx; 4.jQuer ...

  4. jQuery原理第五天

    addClass <!--* @Author: 码小余* @Date: 2020-06-27 08:23:36* @LastEditTime: 2020-06-27 08:26:43* @Fil ...

  5. jQuery原理第四天

    insertAfter 实现insertAfter需要用到原生JavaScript的nextSibling属性 元素.insertAfter.指定元素 ==>将元素添加到指定元素外部的后面 in ...

  6. jQuery原理第一天

    jQuery原理 jQuery的基本结构 jQuery的本质是一个闭包 jQuery为什么要使用闭包来实现? ​ 为了避免多个框架的冲突 jQuery如何让外界访问内部定义的局部变量 ​ window ...

  7. [jQuery原理] jQueryDOM操作相关方法

    DOM操作相关方法 empty empty ==> 清空指定元素中的所有内容 empty: function () {// 1.遍历指定的元素this.each(function (key, v ...

  8. jQuery 1.6 源码学习(六)——core.js[6]之jQuery对象/数组操作相关方法

    本文将分析jQuery对象操作相关方法(包括静态和实例方法): merge方法,代码如下: //此方法用于合并两个jQuery对象(因为jQuery对象中有length属性)或者数组,//这个方法非常 ...

  9. Jquery的事件操作和文档操作

    对于熟悉前端开发的小伙伴,相信对于Jquery一定不陌生,相对于JavaScript的繁琐,Jquery更加的简洁,当然简洁不意味着简单,我们可以使用Jquery完成我们想要实现全部功能,这里为小白们 ...

最新文章

  1. 2021年大数据Flink(三十一):​​​​​​​Table与SQL案例准备 依赖和​​​​​​​程序结构
  2. Oracle监听器Server端与Client端配置实例
  3. 64匹马8个跑道需要多少轮才能挑选出最快的4匹马?
  4. 1001:Hello,World!
  5. 数据结构:下列选项中,不可能是快速排序第2趟排序结果的是(2019年全国试题10)
  6. 欧拉函数的性质及其证明
  7. mysql+两天前+函数_Mysql 日期函数
  8. 你应该需要知道的前端小技巧
  9. 奇妙的等式 精妙的证明(二)
  10. C++学习网站——www.cplusplus.com
  11. TCP_IP Sockets编程C语言实现第2版 源码下载
  12. 轻量级MVC框架(自行开发)
  13. 软硬负载之间的对比及优缺点
  14. raid卡 4k 设置 linux,硬盘“大户”看过来,手把手教你组建 RAID 磁盘阵列
  15. nginx 逻辑运算
  16. 简单迭代法和牛顿迭代法matlab程序设计(含例题)
  17. Linux下C语言开发通讯录管理软件(一)
  18. [深度学习工具]·FoolNLTK 中文处理工具包使用教程
  19. Koo叔说Shader—Shader简介
  20. windows10 系统共享文件端口修改

热门文章

  1. orm设置bool型 python_Python SQLAlchemy入门教程
  2. 基于STM32F4的舵机控制
  3. Mac安装nmap及常用命令【亲测有用】
  4. 2020护网参考学习 关于护网行动的总结
  5. android开发模板web,Android开发实践:Android.mk模板
  6. redis 内存溢出_查漏补缺,Redis为什么会这么快,看完这七点你就知道了
  7. 测试图像 “monarch”_智慧职教云课堂2020学前儿童心理教育章节测试答案
  8. django请求生命周期
  9. [转载]如何限制一个类对象只在栈(堆)上分配空间?
  10. flutter NestedScrollView 下拉刷新的解决方案一