jquery - 函数未定义 - 从内联脚本调用此函数

时间:2014-07-14 07:12:24

标签: javascript jquery function inline-scripting

我的代码如下所示。从中删除了不需要的代码,只需编写所需内容。当我从body中的内联脚本调用我的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>

3 个答案:

答案 0 :(得分:4)

在DOMReady被触发之前,您的两个函数都不会被定义,这将在toggleFuncbody的调用运行后发生。此外,toggleFunc位于pageInitialize函数内,因此无法在pageInitialize之外访问。

试试这个:

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

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

答案 1 :(得分:1)

两个问题:

  1. toggleFunc不是全局函数。它位于pageInitialize的本地。如果您希望它是全局的,请将其分配给window

  2. 您正在$(document).ready回调中定义函数,该回调将在将来的某个时刻执行。您立即调用该函数,外部 $(document).ready回调。它还没有被定义。

答案 2 :(得分:0)

toggleFunc()无法从全局范围调用Closure

在您使用$(document).ready

之前,它甚至被定义之前也会被调用