首页 > 代码库 > 最近遇到的一些问题总结
最近遇到的一些问题总结
1.jQuery事件绑定的时候,一定要小心多次绑定和重复绑定。
2.关于IE中image的onload事件失效解决问题,IE会从缓存里获取地址,如果存在的地址就会很快加载完,onload事件就会触发在绑定前。
解决办法,先绑定事件再传地址:
var i = new Image();
i.onload = function(){ }
i.src = http://www.mamicode.com/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>
最近遇到的一些问题总结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。