javascript - 对于定义低于其使用的函数,出现错误 ReferenceError

标签 javascript jquery scope

我读到您应该将 Javascript 放在页面的最底部。但是,当我这样做时,我收到一个 ReferenceError: showDialog is not Defined 错误,因为我在使用它之前引用了它。我把它包装在 document.ready 中,但仍然不起作用。

<a href="javascript:void(0)" onclick="showDialog()">Add New User</a>

$(function() {
    function showDialog() {
        $('#dialog-AddUser').show();
    }
}

最佳答案

$(function () {
    function showDialog() {
        $('#dialog-AddUser').show();
    }
}

您在这里遇到了范围问题。与文档加载完全无关。请记住,每当您在函数内声明/创建某些内容时,它都是该函数的本地内容。将其移至整个文档都可以看到的外部。

简单地写

 function showDialog() {
            $('#dialog-AddUser').show();
        }

应该可以。

即使您在文档就绪中编写此函数,您的函数也会再次本地化到该特定的就绪函数并且对外部不可见。

关于javascript - 对于定义低于其使用的函数,出现错误 ReferenceError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47954440/

相关文章:

jquery - jQuery 是如何影响 CSS 结构的

scope - 如何在全局范围内创建 Freemarker 函数?

javascript - 使用 CSS 更改 slider 上的起始位置时出现问题

javascript - Isdate javascript 代码

javascript - Span 元素不运行来自 jQuery 的动画

javascript - 将数组推送到 getJSON 中

带有类的 Javascript/jQuery 回调

javascript - 检查直接在html文件中的js中的变量

javascript - 未加载backgroundImage样式-react js

jQuery:如何通过 src 查找图像