js中遇到的一個小問題,關於Uncaught ReferenceError:XXX is not defined at HTMLAnchorElement.onclick報錯


一、報錯代碼及原因

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <a href="javascript:void(0)" onclick="init()">點我</a>
</body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>
<script type="text/javascript">
    //var init;
    window.onload=function(){
        var init = function(){
            console.log(0)
        }
    }
</script>
</html>

1、或者吧init函數寫在JQ的$(document).ready函數里面也會報標題錯誤;原因是未找到該函數;

二、為什么會報錯?

  1、具體原因應該是和html渲染過程有關。這里就不詳細說;總之就是點擊的時候立即執行,發現該函數還未定義。所以就報錯了;

    2、解決辦法:一個是直接寫函數,不謝window.onload函數或者JQ的ready方法。但推薦第二個方法,如下:

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <a href="javascript:void(0)" onclick="init()">點我</a>
</body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>
<script type="text/javascript">
    var init;      //先聲明一個變量,后面再給其賦值
    window.onload=function(){
        var init = function(){
            console.log(0)
        }
    }
</script>
</html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM