用作标志的Javascript全局变量
Javascript global variables used as flags
我正在尝试使用全局变量作为标志,但无法使其工作。我有两个功能:
此函数在完成时将标志设置为false。
function buildYearsTable(btn) {
//console.log ("At build years table")
var fundCode = document.getElementById("fundCode").value
buildYearsFlag = true;
$.ajax({url: "/scholarship/scholarshipMaintenance/buildYearsTable", method: "POST",
cache: false, data: {fundCode: fundCode},
complete: function(xhr, statusCode){
console.log("inside build years table")
data = $.parseJSON(xhr.responseText)
$('#myTable tbody').html('');
data = data.sort()
data = data.reverse()
for(var i = data.length - 1; i >= 0; i--) {
moveYearOption(data[i])
addYearRow(data[i])
}
buildYearsFlag = false;
//$('#yearsTable').html(xhr.responseText)
console.log("done in build years table")
}})
}
这个函数在调用第一个函数时被调用,但我需要它只在第一个函数将标志设置为false时执行ajax调用。我不知道如何做到这一点。我想了一段时间(投票的想法),但不知道该怎么做。
function rebuildYearSelects(btn) {
//console.log ("At rebuild selects")
var fundCode = document.getElementById("fundCode").value
while (buildYearsFlag == false) {
$.ajax({url: "/scholarship/scholarshipMaintenance/rebuildYearSelects", method: "POST",
cache: false, data: {fundCode: fundCode},
complete: function(xhr, statusCode){
console.log("got inside rebuild years select")
data = $.parseJSON(xhr.responseText)
selectedYears = data.sortedSelectedYears
unselectedYears = data.sortedUnselectedYears
$('#yearsModal').replaceWith(data.html)
fixModals();
buildYearsFlag = true;
console.log("done in rebuildYearSelects")
}})
}
}
实现这一点的最佳方法是使用回调。您只需要在第一个函数的响应之后调用第二个函数。
您应该使用"done"而不是"complete"。
function buildYearsTable(btn) {
var fundCode = document.getElementById("fundCode").value
$.ajax({url: "/scholarship/scholarshipMaintenance/buildYearsTable", method: "POST",
cache: false, data: {fundCode: fundCode},
done: function( data ){
// Your code goes here
// Call the function only after the response
rebuildYearSelects();
}})
}
Html:
onclick="buildYearsTable();"
删除标志和while循环,一切都应该正常。
相关文章:
- 没有通过ajax调用设置Javascript全局变量
- Javascript全局变量简单解决方案
- 用作标志的Javascript全局变量
- Javascript全局变量问题
- 函数内部的JavaScript全局变量定义
- Selenium Web驱动程序访问Jquery中的Javascript全局变量
- Javascript全局变量在mouseup上总是未定义的
- Javascript全局变量存储在哪个对象中
- nodejs中的Javascript全局变量和属性-全局属性有时会被删除
- Javascript:全局变量转到“窗口”或“全局”,但全局函数不会.全球 FN 去哪儿了
- JavaScript 全局变量声明
- 与javascript全局变量范围和更新混淆
- 通过 Excel VBA 引用 Acrobat Javascript 全局变量所需的语法是什么?
- Javascript - 全局变量和全局范围内的变量是否不同(在 jsfiddle 中)
- Javascript 全局变量命名冲突
- Javascript:全局变量=坏
- Javascript 全局变量在回调函数之外不会保持不变
- javascript 全局变量不能存储值,如果它意味着从 HTML 元素中提取它们
- 创建/访问在 AJAX 调用中创建的 Javascript 全局变量
- 拼接上的Javascript全局变量作用域/覆盖