gpt4 book ai didi

部署时未定义 Javascript 公共(public)命名空间函数

转载 作者:行者123 更新时间:2023-11-30 12:17:14 29 4
gpt4 key购买 nike

我已将以下脚本分配给公共(public) Javascript 命名空间。它们在本地都运行良好,我可以调用 TEST.loading(true) 并且所有行为都符合预期,但是当我将它们部署到我的远程服务器时,我在 Chrome/Firefox 控制台中收到以下错误; 未捕获类型错误:TEST.loading 不是函数

我不明白为什么它会在本地而不是远程工作。我认为这不会有任何区别,但我正在使用 MVC 包来部署脚本并且我已经检查了 Chrome 的网络输出并且脚本正在正常加载我可以看到里面的代码......任何建议?

var TEST = TEST || 
{
dtFormat: "DD MMMM YYYY HH:mm",

loading: function loading(showLoading) {
if (showLoading) {
if (Modernizr.cssanimations)
$("#loadingAnimation").show();
else
$("#loadingStatic").show();
$("#loadingContainer").show();
}
else {
if (Modernizr.cssanimations)
$("#loadingAnimation").hide();
else
$("#loadingStatic").hide();
$("#loadingContainer").hide();
}
}
};

最佳答案

当该代码运行时,TEST 似乎已经定义了真值,使该代码成为空操作。

如果你想确保总是添加你的属性,不管它是否已经存在,这是通常的模式:

var TEST = (function(t) {
{
t.dtFormat = "DD MMMM YYYY HH:mm";

t.loading = function loading(showLoading) {
if (showLoading) {
if (Modernizr.cssanimations)
$("#loadingAnimation").show();
else
$("#loadingStatic").show();
$("#loadingContainer").show();
}
else {
if (Modernizr.cssanimations)
$("#loadingAnimation").hide();
else
$("#loadingStatic").hide();
$("#loadingContainer").hide();
}
};

return t;
})(TEST || {});

这还有一个好处,就是可以为您提供方便的私有(private)函数范围。

关于部署时未定义 Javascript 公共(public)命名空间函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32124540/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com