gpt4 book ai didi

命名空间ajax函数回调中另一个命名空间的javascript访问函数

转载 作者:行者123 更新时间:2023-12-03 04:15:33 24 4
gpt4 key购买 nike

我的 JavaScript 代码需要一些帮助。我最近刚刚开始使用命名空间,但遇到了一个无法解决的问题。

我有两个文件data.jsthemes.js,每个数据和主题分别有一个命名空间。在数据命名空间上,我有一个函数来执行 ajax 调用,如下所示:

var data = data || {};data = {
get_companies: function (id) {
$.ajax({
//blah blah blah
});
}
}

在主题命名空间中我有一个这样的函数:

var themes = themes || {};
themes = {
themeAdd: function () {
//blah blah
$.ajax({
//blah blah
success: function (data) {
data.get_companies('#someid');
}
});
}
}

问题是,虽然我可以从 themes.js 文件和控制台访问 data.get_companies,但当我尝试在 ajax 回调中调用它时,它会产生错误( data.get_companies 不是函数)。我该如何解决这个问题以及为什么我无法在 ajax 回调中访问此函数?

最佳答案

在 ajax success 回调中更改传递给它的参数名称:

$.ajax({
//blah blah
success: function (response) {
data.get_companies('#someid');
}
};

目前,您使用名为 data 的参数定义了一个匿名函数,因此在该函数内 data 是 AJAX 请求收到的内容,而不是全局 >数据对象。

您也可以尝试像这样访问它:

$.ajax({
//blah blah
success: function (data) {
window.data.get_companies('#someid');
}
};

关于命名空间ajax函数回调中另一个命名空间的javascript访问函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44153935/

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