在 ajax 调用中为全局变量赋值,并在单独的.js文件中使用它
Assigning a value to a global variable inside an ajax call and using it in a separate .js file
我有两个单独的.js文件,我想在我的第一个.js文件中分配一个名为citId
的全局变量的值,然后在第二个.js文件中使用该变量。
代码太长,无法发布,所以我举了一个我正在尝试做的事情的例子。
我的第一个.js文件是main.js
:
var citId = "";
$(document).ready(function($) {
var url = some url;
$.ajax({
type: 'GET',
url: url,
jsonpCallback: 'getSBJSON',
contentType: "application/json",
dataType: 'jsonp',
success: function(json) {
//Does some stuff
urlId = product of some stuff;
$.ajax({
type: 'GET',
url: url + urlId,
jsonpCallback: 'getSBJSON',
contentType: "application/json",
dataType: 'jsonp',
success: function(json) {
if (json.length > 0) {
citId = urlId;
window.open('Citations.html', '_self');
} else {
var page = linkBase + urlId;
window.open(page);
}
},
error: function(e) {
console.log(e.message);
}
});
});
},
error: function(e) {
console.log(e.message);
}
});
});
我的第二个.js文件是citations.js
:
$(document).ready(function($) {
var itemLnkId = citId;
$.ajax({
type: 'GET',
url: url + citId,
jsonpCallback: 'getSBJSON',
contentType: "application/json",
dataType: 'jsonp',
success: function(json)
// more stuff
});
});
我已经阅读了很多答案,这些答案要么显示了如何在 ajax 调用中分配全局变量,要么显示了如何在.js文件中使用全局变量,但没有显示如何将两者结合起来。
当我简单地使用全局变量时,它适用于原始值,但不显示 ajax 调用中正在更改的值。有没有办法既分配一个值,又在不同的.js文件中使用它?
为什么不使用全局变量,使用 ajax 调用的 invokedata 传递所需的变量?
以在成功调用中使用它。
示例 http://weboutofthebox.com/en-GB/28/Article/Ajaxinvokedataparameter
Javascript 在执行 AJAX 调用时不会"保持",它是异步的,对于第二个 ajax 调用,变量尚未设置。 所以...试试这个:
引用文献.js:
$(document).ready(function($) {
var url = some url;
$.ajax({
type: 'GET',
url: url,
jsonpCallback: 'getSBJSON',
contentType: "application/json",
dataType: 'jsonp',
success: function(json) {
//Does some stuff
urlId = product of some stuff;
$.ajax({
type: 'GET',
url: url + urlId,
jsonpCallback: 'getSBJSON',
contentType: "application/json",
dataType: 'jsonp',
success: function(json) {
if (json.length > 0) {
readyToGo(citId);
window.open('Citations.html', '_self');
} else {
var page = linkBase + urlId;
window.open(page);
}
},
error: function(e) {
console.log(e.message);
}
});
});
},
error: function(e) {
console.log(e.message);
}
});
});
主.js:
var readyToGo = function() {
var itemLnkId = arguments[0];
$.ajax({
type: 'GET',
url: url + citId,
jsonpCallback: 'getSBJSON',
contentType: "application/json",
dataType: 'jsonp',
success: function(json)
// more stuff
});
}
这样的事情会:)
$('.actived').click(function(){
var status = "Actived";
var register_id=1;
(function(status){
$.ajax({
//url: "<?php echo base_url();?>index.php?admin/home/toggleActive",
type: "POST",
data: {
"register_id" : register_id,
"status":status
},
//datatype: 'json',
success: function(data){
},
error:function(){
alert("failure");
}
});
})(status);
});
I hope that it will help you...
相关文章:
- JS文件的路径正在消失
- 我的外部js文件无法加载
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- 动态加载和卸载js文件
- 如何将变量传递到另一个js文件
- 如何将所有JS文件连接到一个文件夹中
- 从Chrome扩展名中的popup.html文件在background.js文件中运行一个函数
- 如何使用php文件中的GET来获取我在.js文件中声明的变量
- 如何将模板中的标记脚本移动到.js文件中
- 什么's是连接供应商js文件的最佳方式
- 如何在定义js文件后为外部javascript文件设置变量
- 如何在JS文件中获取资源(.resx)字符串
- 将*.js文件的内容放入Object中
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- 导致内容安全策略(CSP)冲突错误的本地jquery.js文件
- 如何使用Gmail运行.js文件
- 如何定义一个模块并使用它来分离js文件
- Angular JS文件上传到托管服务器
- 如何引用HTML中节点模块中的js文件
- 如何将JS文件从其他文件夹链接到页面