在用canvas些一个游戏,用MVC的设计模式,把js文件分成了3个,分别代表M,V,C。但是在执行过程中,三个文件都要在window.onload的时候执行。但是window.onload在一个html文件中只能有一个存在。当然,在一个js文件中我知道可以这样做:
window.onload=function(){
funtion1(){};
funtion2(){};
}
但是像这样的多个JS文件,而且多个js文件还有关联的情况下怎么解决?
一般我们这样子添加回调:
btn.onclick = func;
但是如果添加多个回调并且顺序执行肯定就不能这样了,因为这样后面的会覆盖前面的。
于是:
//element.addEventListener(type,listener,useCapture);
btn.addEventListener("click", func1, false);
btn.addEventListener("click", func2, false);
btn.addEventListener("click", func3, false);
执行顺序为func1->func2->func3。
需要注意attachEvent
是IE自己的方法,addEventListener
是w3c标准的东西。
入口只有一个就行了。重新整理一下逻辑吧
另外,可以看一下requirejs
既然是用canvas些一个游戏,那就肯定支持window.addEventListener
function addLoadEvent(fn){
var oldonload = window.onload;
if(typeof window.onload != 'function'){
window.onload = fn;
}else{
window.onload = function(){
oldonload();
fn();
}
}
}
jQuery