一個基礎的問題 多個$(function(){})里面的函數 為什么在下一個$(function(){})里沒法執行。


先看下例子

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="jquery-1.10.2_d88366fd.js"></script>
    </head>
    <body>
        <script>
            $(function(){
                function console1(){
                    console.log('js1:console1');
                }
            })
        </script>
        <script>
            $(function(){
                console1();
            })
        </script>
    </body>
</html>

這樣寫 console1函數無法執行報錯,說沒找到console1函數。

想了半天,原來每個$(function(){})都是一個函數,函數都有自己的作用域,匿名函數相當於私有的函數,要把匿名函數改成 全局函數就可以在下面用了。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="jquery-1.10.2_d88366fd.js"></script>
    </head>
    <body>
        <script>
            var console1;
            $(function(){
                console1=function (){
                    console.log('js1:console1');
                }
            })
        </script>
        <script>
            $(function(){
                console1();
            })
        </script>
    </body>
</html>

 


免責聲明!

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



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