js动态添加onload、onresize、onscroll事件(另类方法)
作者:
window 的 onload、onresize、onscroll 事件,跟其他的事件不一样,它不能用 attachEvent 或 addEventListener 来添加于是本人想了一些另类的方法,需要了解的朋友可以参考下
window 的 onload、onresize、onscroll 事件,跟其他的事件不一样,它不能用 attachEvent 或 addEventListener 来添加。
也就是说,它只能这样来(以 onload 为例,下同):
window.onload = function()
{
// ...
};
但这有个问题,就是想再为 onload 增加新的事件处理程序时,不能直接为 window.onload 赋值了,否则前面的赋值就会被覆盖了。
可这样做:
var oldLoadHandler = window.onload;
window.onload = function()
{
if (oldLoadHandler)
{
oldLoadHandler();
}
newLoadHandler();
};
在 ezj 中,就更加方便了。
$(window).ready(onloadHandler1);
$(window).ready(onloadHandler2);
说明
我们一般接触的 onload 事件是 document.body.onload,但这实际上是由于 IE 的误导,正确的应该是 window.onload,window.onload 在 IE、Firefox、Chrome 中均有效。
也就是说,它只能这样来(以 onload 为例,下同):
复制代码 代码如下:
window.onload = function()
{
// ...
};
但这有个问题,就是想再为 onload 增加新的事件处理程序时,不能直接为 window.onload 赋值了,否则前面的赋值就会被覆盖了。
可这样做:
复制代码 代码如下:
var oldLoadHandler = window.onload;
window.onload = function()
{
if (oldLoadHandler)
{
oldLoadHandler();
}
newLoadHandler();
};
在 ezj 中,就更加方便了。
复制代码 代码如下:
$(window).ready(onloadHandler1);
$(window).ready(onloadHandler2);
说明
我们一般接触的 onload 事件是 document.body.onload,但这实际上是由于 IE 的误导,正确的应该是 window.onload,window.onload 在 IE、Firefox、Chrome 中均有效。
您可能感兴趣的文章:
- JS中setTimeout的巧妙用法前端函数节流
- 浅谈JavaScript函数节流
- JavaScript函数节流概念与用法实例详解
- JavaScript性能优化之函数节流(throttle)与函数去抖(debounce)
- js隐藏与显示回到顶部按钮及window.onscroll事件应用
- JS 滚动事件window.onscroll与position:fixed写兼容IE6的回到顶部组件
- javascript的offset、client、scroll使用方法详解
- javascript scrollTop正解使用方法
- JS中完美兼容各大浏览器的scrolltop方法
- JavaScript触发onScroll事件的函数节流详解