手写jQuery核心源码Day3
今天完成是剩下的DOM属性的操作的方法和事件的操作方法
源码在:https://gitee.com/jimmyxuexue/handwritten_jquery_source/blob/master/%E6%89%8B%E5%86%99%E6%BA%90%E7%A0%81/myQuery.js
最困惑前端的地方有时候就是浏览器适配的问题,很多浏览器因为版本比较低,一些JS新的特性是不能够使用的,只能使用一个性能较差的一些工具方法
-
DOM.addEventListener()为DOM元素添加事件的方法在IE8及其以下的浏览器是不能够使用的,这些浏览器需要使用DOM.attachEvent()方法,且方法名前面必须加上on,如DOM.attachEvent('onclick',()=>{}) - jQuery有一个专门off方法用于注销事件,实现的原理是根据DOM的名字,事件,和回调函数封装成一个对象,off方法再根据传递的参数在这个对象的删除指定的回调,这样就实现了事件的注销
- 原生的JS移除事件可以使用
DOM.removeEventListener(事件名,回调函数,布尔值)方法,和addEventListener()方法不同的地方在于多了传递一个布尔值,false/true:false为冒泡/ture为捕获,参数是true,表示在捕获阶段调用事件处理程序;如果是false,表示在冒泡阶段调用事件处理程序,一般都是填false