2017-08-01 事件兼容问题 attachEvent 和 addEventListener12345678910//attachEvent 是IE678支持的 而 addEventListener是其他大部分浏览器支持的function addEvent(el,e,fn){ if(el.addEventListener){ el.addEventListener(e,fn) }else if(el.attachEvent){ el.attachEvent("on"+e,fn) }else{ el["on"+e]=fn }} addEventListener(e,fn[,boolean])可以两个必传的参数和一个可传参数e:事件类型fn:事件函数boolean: 是否支持捕获 true就是捕获 false就是冒泡冒泡和捕获冒泡是从当前元素到父元素依次触发事件123456789var father=document.getElementById('#box')var son = father.chlidren[0]father.addEventListener('click',function(e){ console.log('father')},false)son.addEventListener('click',function(e){ console.log('son')},false)//点击son 会先打印 son 在打印 father 捕获是从父元素到当前元素依次触发事件123456789var father=document.getElementById('#box')var son = father.chlidren[0]father.addEventListener('click',function(e){ console.log('father')},true)son.addEventListener('click',function(e){ console.log('son')},true)//点击son 会先打印 father 在打印 son 捕获不常用 而冒泡最常见的就是在事件委托事件委托只要是因为当页面重新渲染后,渲染的内容所有注册的事件都失效了,所有用到了事件委托12345678910var father=document.getElementById('#box')//点击father里面的div弹出 '你好'father.addEventListener('click',function(e){ if(e.target.tagName==="DIV"){ window.alert('你好') }},false)var son=document.creatElement('div')son.innerHTML="点我"father.appendChild(son); Récent react配置 Ancien browser-sync跨域