注册事件兼容性解决方案
做一个封装函数
先判断当前浏览器是否支持addEventListener方法。如果支持就使用它,如果不支持,判断它是否支持attachEvent(1 它的事件类型前要加on 2作为了解就可以了 ),如果都不支持,就用传统的。
(兼容性处理的原则:首先照顾大多数浏览器,在处理特殊浏览器)
删除时间兼容性方法
- 传统删除事件
eventTarget.οnclick=null - eventTarget.removeEventListener
- eventTarget.detachEvent
先2后3最后1
兄弟节点兼容性方法
自己封装一个兼容性的函数
Function getnextElmentSibling(element){
var el=element;
While (el=el.nextSibling){
If(el.nodeType===1){
return el;
}
}
Return null ;
}
//while语句条件不理解
this与e.target
?解析器在调用函数每次都会向函数内部传递一个隐含的参数,这个参数就是this(浏览器传过来的).这个对象我们称为函数执行的上下文对象,根据函数的调用方式不同,this会指向不同的对象(谁调用函数,this就指向谁)
- 以函数的形式调用,window
- 以方法的形式调用,this就是调用方法的对象
e.target返回的是触发事件的对象
this返回的是绑定事件的对象