----------------------------------------------个人学习整理,转载请注明----------------------------------------------
之前尝试了书里的image gallery的例子,发现javascript效果怎么按都没有效果。找了源代码学习,才发现是忘记了里面的addLoadEvent(func)函数。
看了以后也不是很理解,就google了一些解释,终于有了一个清晰的认识。也顺便跟大家一起分享我的学习成果:
之前javascript不起作用的原因:因为javascript文件执行顺序也是自顶向下,而且是包含在html文件里面的<head>标签里面执行的,所以执行的时候,并没有所谓的元素结点,所以函数自然不起作用。
而addLoadEvent(func)函数的作用正是将所有js函数准备着,等整个html文档下载完毕之后再启动,这个时候,具备了所用到的元素结点,也就起作用了。
function addLoadEvent(func) {
var oldonload = window.onload; //将响应函数赋予oldonload对象,如果oldonload是firstfunction()就执行firstfunction()
if (typeof window.onload != 'function') { //判断之前有没有调用函数
window.onload = func; //没有调用函数就执行当前函数
} else {
window.onload = function() { //已经调用了函数的 就调用一个匿名函数,包含了之前调用的函数和当前函数
oldonload();
func();
}
}
}
顺便推荐一本书:《Javascript DOM 编程艺术》