onclick 定义的方法 在$(function(){})或window.onload=function(){}中无效

$(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>

 

 

 

posted @ 2020-04-01 15:08  骨子里的傲气  阅读(1487)  评论(0编辑  收藏  举报