如果有多个window.onscroll=function(){}怎么处理?
如果一个页面 将会出现多个
window.onscroll=function(){..}
类似这样的语句。
页面从上到下,
已知 已经 先出现了一个window.onscroll=function(){..}
在下游 还将用到一个window.onscroll=function(){..}
这样的语句。,
那么,作为下游的代码。,为了不使代码重叠冲突,应该如何书写?
把后面的function 附加给给某个东西,
onscroll
------解决方案--------------------如果一个页面出现多个window.onscroll=function(){...}后果是只有最后一个正常运行。
解决方法可以使用jquery
$(document).ready(function(){
$(window).scroll(function(){alert(0)});
$(window).scroll(function(){alert(1)});
})
这样是不会相互替换函数的。
------解决方案--------------------
window.onscroll=function(){
alert('first scroll');
}
var oldMethod = window.onscroll;
if(typeof oldMethod == 'function'){
window.onscroll = function(){
oldMethod.call(this);
alert('second method');
}
}
或者用addEventListener(FF)跟attachEvent(IE)。
function addEvent(obj,type,fn){
if(obj.attachEvent){
obj.attachEvent('on'+type,function(){
fn.call(obj);
})
}else{
obj.addEventListener(type,fn,false);
}
}
addEvent(window,'scroll',function(){
alert('first method')
});
addEvent(window,'scroll',function(){
alert('second method')
});
或者像#1那样jquery的写法。