js動態添加onload、onresize、onscroll事件(另類方法)
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 中均有效。