簡體   English   中英

jQuery-函數未定義-從內聯腳本調用此函數

[英]jquery - function not defined - calling this function from inline script

我有如下所示的代碼。 從中刪除了不需要的代碼,只寫了所需的內容。 當我從正文中的內聯腳本調用我的toggleFunc時,它在控制台中顯示未定義此功能。 誰能告訴我這有什么問題嗎?

<head>
<script src="~/Client/js/lib/jquery-1.10.2.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        var pageInitialize = function () {  

            ..doing something here

            function toggleFunc() { 
               ..doing something more here
            };
        };
        pageInitialize();
    });
</script>
</head>
<body>
<script>toggleFunc()</script>
</body>

在觸發DOMReady之前,不會定義您的兩個函數,這將在運行body toggleFunc調用之后發生。 另外, toggleFuncpageInitialize函數內,因此無法在pageInitialize外部pageInitialize

嘗試這個:

<script type="text/javascript">
    var pageInitialize = function () {  
        //..doing something here
    };
    pageInitialize();

    function toggleFunc() { 
        //..doing something more here
    };
</script>

兩個問題:

  1. toggleFunc不是全局函數。 pageInitialize是本地的。 如果希望它是全局的,請將其分配給window

  2. 您正在$(document).ready回調中定義函數,該函數將在將來的某個時間執行。 您正在$(document).ready回調函數外部立即調用該函數。 尚未定義。

toggleFunc()是無法從全局范圍調用的閉包

在使用$(document).ready之前,它甚至在被定義之前就被調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM