![](/img/trans.png)
[英]problem calling namespaced function from javascript function in another js file
[英]javascript access function from another namespace in namespaced ajax functions callback
我的JavaScript代码需要一些帮助。 我刚开始使用名称空间,但遇到了一个我无法解决的问题。
我有两个文件data.js和themes.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请求已接收的内容,而不是全局data
对象。
您也可以尝试像这样访问它:
$.ajax({
//blah blah
success: function (data) {
window.data.get_companies('#someid');
}
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.