DOM2兼容处理顺序问题的解决方法,具体如下
创新互联建站基于成都重庆香港及美国等地区分布式IDC机房数据中心构建的电信大带宽,联通大带宽,移动大带宽,多线BGP大带宽租用,是为众多客户提供专业服务器托管报价,主机托管价格性价比高,为金融证券行业光华机房服务器托管,ai人工智能服务器托管提供bgp线路100M独享,G口带宽及机柜租用的专业成都idc公司。
解决顺序问题:我们不用浏览器自带的事件池了,而是自己模拟标准浏览器的事件池实现,具体代码如下:
/* bind:处理DOM2级事件绑定的兼容性问题(绑定方法) @parameter: curEle->要绑定事件的元素 evenType->要绑定的事件类型("click","mouseover") evenFn->要绑定的方法 */ function bind(curEle,evenType,evenFn){ if('addEventListener' in document){ curEle.addEventListener(evenType,evenFn,false); return; } //给evenFn化妆 并且把化妆前的照片贴在自己对应的脑门上 var tempFn = function(){ evenFn.call(curEle) } tempFn.photo = evenFn; //首先判断自定义属性之前是否存在,不存在的话创建一个,由于要存储多个化妆后的结果,所以我们让其值是一个数组 if(!curEle["mybind"+evenType]){//根据不同的事件类型是不同的数组 curEle["mybind"+evenType] = []; } //解决重复问题:每一次自己在往自定义属性对应的容器中添加前,看一下是否已经存在,存在的话就不用重新的添加了,同理也不需要往事件池里面存储了 var ary = curEle["mybind"+evenType]; for(var i = 0;i
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。