问题状况前端
搜狗等,兼容模式下,之前前端写的点击事件的代码没有,chrome
后来一看是由于兼容模式为9,致使点击事件失效函数
解决办法,步骤ui
1,处理绑定事件兼容问题spa
ie低版本绑定事件只支持attactevent,因此先写个兼容的事件绑定函数code
1 function myEve(ele,evetype,fn,uc){ 2 var eledoc = document.getElementById(ele) 3 if(eledoc.addEventListener){ 4 eledoc.addEventListener(evetype,fn,uc) 5 }else if(eledoc.attachEvent){ 6 eledoc.attachEvent('on' + evetype, fn) 7 } 8 };
2,blog
function a(id){ var elec = document.getElementById(id) if(elec.className.indexOf('sso') > 0){ elec.className = elec.className.slice(0,-3) + 'mmo'; }else{ elec.className = elec.className.slice(0,-3) + 'sso'; } } myEve('linedesign','click',a('linedesign'),false);//一开始直接使用这样的代码在载入页面时,事件便本身执行一次,并且没法继续点击效果,此处须要将事件处理函数,不传参数,就不会本身执行,改成下面一段
1 myEve('linedesign','click',function a(){ 2 var elec = document.getElementById('linedesign') 3 if(elec.className.indexOf('sso') > 0){ 4 elec.className = elec.className.slice(0,-3) + 'mmo'; 5 }else{ 6 elec.className = elec.className.slice(0,-3) + 'sso'; 7 } 8 },false);//最后改为了这样,暂时能用
3,这些改完后,发现回到ie内核下仍是须要手动修改一次文档模式,再次刷新,才能在ie7,8,9下绑定到点击事件事件
4,继续解决,文档
此时在header标签中加入get
1 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
不用手动修改文档模式,便可绑定事件执行。
这些都是暂时实现了,有些原理没太明白,有知晓的网友,请不吝赐教,谢谢!