JavaScript addLoadEvent()函数的使用...

1.网页在加载完毕后,会触发一个与window对象关联的onload事件;

 如: window.onload = firstFunc;

2.但是如果要添加让页面加载后就加载多个函数呢?

    window.onload = firstFunc;

    window.onload = secondFunc;

 这样写的话,是逐一绑定,实际上只有最后一个函数secondFunc被实际执行;

3.如果只加载两个函数的话,可以用匿名函数;

  window.onload = function(){

        firstFunc();

        secondFunc();

  }

4.但是匿名函数只能加载两个,那么要加载多个方法怎么办呢?这个时候可以用addLoadEvent函数;


/**
页面加载(图片等)后要执行的函数添加到队列中,依次执行
***/
addLoadEvent(firstFunc);
addLoadEvent(secondFunc);
addLoadEvent(thirdFunc);

function addLoadEvent(func){
	var oldonload = window.onload;
	if(typeof window.onload != 'function'){//如果window.onload里面没有函数,就添加一个进去
		console.log("只执行一次,第一个添加进队列的函数");
		window.onload = func;
		console.log("第一个添加进队列的函数,添加完成!!!!");
	}else{//如果window.onload里面有函数了,就把其他的函数添加进去
		window.onload = function(){
			oldonload();
			func();
		}
	}
}

function firstFunc(){
	console.log("函数firstFunc被添加进队列");
}

function secondFunc(){
	console.log("函数secondFunc被添加进队列");
}

function thirdFunc(){
	console.log("函数thirdFunc被添加进队列");
}

执行后输出如下:都添加进队列后,依次执行这些函数


5.如果加上JQuery的$(function(){})方法,$(function(){})方法执行在window.onload前面。

$(function(){})方法是在DOM(一个页面的标签树)加载完成之后就执行的,比window.onload早执行。

$(function() {}) 是$(document).ready(function()的简写。

$(function(){
	console.log("jQuery执行$(function(){})方法 -- 1!!");
	}
);


6.如果$(function(){})方法有两个呢?都会执行,这个方法不会覆盖。

$(function(){
	console.log("jQuery执行$(function(){})方法 -- 1!!");
	}
);
$(function(){
	console.log("jQuery执行$(function(){})方法 -- 2!!");
	}
);


猜你喜欢

转载自blog.csdn.net/wylsde_zjy/article/details/80269703