最近遇到的一些问题总结

1.jQuery事件绑定的时候,一定要小心多次绑定和重复绑定。

2.关于IE中image的onload事件失效解决问题,IE会从缓存里获取地址,如果存在的地址就会很快加载完,onload事件就会触发在绑定前。

解决办法,先绑定事件再传地址:

var i = new Image(); 
i.onload = function(){ }
i.src = url;

3.滚轮事件:

IE/Opera属于同一类型,使用attachEvent即可添加滚轮事件。

/*IE注册事件*/
if(document.attachEvent){
document.attachEvent(‘onmousewheel‘,scrollFunc);
} 

Firefox使用addEventListener添加滚轮事件

/*Firefox注册事件*/
if(document.addEventListener){
document.addEventListener(‘DOMMouseScroll‘,scrollFunc,false);
} 

Safari与Chrome属于同一类型,可使用HTML DOM方式添加事件 
window.onmousewheel=document.onmousewheel=scrollFunc;//IE/Opera/Chrome 
其中除Firefox外其余均可使用HTML DOM方式添加事件,因此添加事件使用以下方式

/*注册事件*/
if(document.addEventListener){
document.addEventListener(‘DOMMouseScroll‘,scrollFunc,false);
}//W3C
window.onmousewheel=document.onmousewheel=scrollFunc;//IE/Opera/Chrome 

detail与wheelDelta

判断滚轮向上或向下在浏览器中也要考虑兼容性,现在五大浏览器(IE、Opera、 Safari、Firefox、Chrome)中Firefox 使用detail,其余四类使用wheelDelta;两者只在取值上不一致,代表含义一致,detail与wheelDelta只各取两个值。 //wheelDelta -120是向下,120向上,detail 3是向下,-3向上

*************************/
var scrollFunc=function(e){
var direct=0;
e=e || window.event; 

  if(e.wheelDelta){//IE/Opera/Chrome 

  }  else if(e.detail){//Firefox 

  }
ScrollText(direct);
}
/*注册事件*/
if(document.addEventListener){
document.addEventListener(‘DOMMouseScroll‘,scrollFunc,false);
}//W3C
window.onmousewheel=document.onmousewheel=scrollFunc;//IE/Opera/Chrome/Safari </script> 
时间: 2024-10-18 13:03:59