$(function(){ }) 或 window.onload=function(){} 表示页面加载完成后执行,html文档从至上而下解析的时候 ; 解析到onclick="showAlert()"方法的时候写在$(function(){ }) 或 window.onload=function(){} 里的方法还没有声明,会报错。
----------------------------------------
如果将showAlert()方法写道$(function(){ }) 或 window.onload=function(){} 外,html文档从至上而下解析会遇到function showAlert(){}的方法,就会在内存中开辟一个新的空间来对函数进行存储,方便以后进行调用。所以该方法起作用
---------------------------------------
window.onload并不是必须得
同样由于页面加载的顺序原因及js的书写的位置原因,window.onload();并不是非要使用的。
当js代码需要获取页面中的元素时,如果script标签在元素的前面,需要加window.onload;如果script放在了元素后面,就不需要加 window.onload。
---------------------------
window.onload 和 $(function(){})的 区别
window.onload是js原生,$(function(){})需要引用jquery库才生效
多个window.onload=function(){}只执行最后一个;
多个$(function(){})都执行
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <div onclick="alert(111)">弹框1</div> <!-- showAlert is not defined --> <div onclick="showAlert()">弹框2</div> <div id="click">弹框3</div> </body> </html> <script> window.onload=function(){ function showAlert(){ alert(222); } document.getElementById('click').onclick=function(){ alert(333); } } </script>