由于异步 .get jQuery 函数导致的表布局错误
Table layout error due to asynchronous .get jQuery function
我正在尝试用数据库中每个单元格的不同信息填充时间表。表正在通过以下函数刷新:
function refreshTable() {
//Form values
var park = $('#Park').val();
var building = $('#Building').val();
var room = $('#Room').val().split(' ')[0];
//var room = temp[0];
var semester = $('#Semester').val();
var week = $('#Week').val();
//Days and times arrays
var days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"];
var times = ["9:00-9:50", "10:00-10:50", "11:00-11:50", "12:00-12:50", "13:00-13:50", "14:00-14:50", "15:00-15:50",
"16:00-16:50", "17:00-17:50"];
var periods = [1, 2, 3, 4, 5, 6, 7, 8, 9];
//Initializing tableHTML variable
var tableHTML = "<table><tr><th><p style='text-align: center'>-</p></th>";
//Appending first row
for (var i = 0; i < 9; i++) {
tableHTML += "<th>" + times[i] + "</th>";
}
tableHTML += "</tr>";
//Nested for loop to append timetable slots to tableHTML
var period, day, result;
for (var k = 0; k < 5; k++) {
tableHTML += "<tr><th>" + days[k] + "</th>";
day = days[k];
for (var l = 0; l < 9; l++) {
period = periods[l];
$.get('@Url.Action("getAvailability")', { parkName: park, buildingName: building, roomCode: room,
semester: semester, week: week, day: day, period: period
}, function (data) {
tableHTML += "<td>"+data+"</td>";
});
}
tableHTML += "</tr>"
}
//Finish tableHTML and set #tableDIV to contain it.
tableHTML += "</table>";
$('#tableDiv').html(tableHTML);
}
但是,由于 jQuery get 函数异步调用它,因此只有 .get 之外的单元格才会写入 tableHTML 变量。
我能做些什么来防止这种情况发生?我不想使用 ajax 并关闭异步,因为它大大增加了加载页面的时间,但目前我看不到解决方法。
提前谢谢。
因为您正在进行异步调用,所以您需要一种机制将数据放回它所属的 DOM 中(而不是简单地连接它)。 因此,您需要将 k 和 l 传递到 get 命令中。 您可以放入内置 k 和 l 的占位符,例如
"< td id='my_td" + k + "_" + l + "'>"
.
当 ajax 返回时,您可以将数据放在 DOM 中它所属的位置。
相关文章:
- Node.js v6.2.0类扩展不是函数错误
- Javascript搜索函数错误
- Chrome Javascript日期构造函数错误
- 浏览器中出现javascript初始大写函数错误
- Createjs冲突问题localToLocal不是函数错误
- Java脚本函数错误
- 更新带有Javascript函数错误的变量
- 如何将对象插入对象列表的开头,当它有 unshift 不是函数错误
- 在将 Pickadate 与 Meteor 一起使用时,未定义不是函数错误
- 运行咕噜咕噜咕噜抛出 _.object 不是函数错误
- 了解函数(错误、数据)回调
- javascript中的typeof()函数错误
- 我一直在获取angularjs服务不是函数错误(LoginService.login不是函数)
- HTML5拖拽&drop正在抛出undefined不是函数错误
- Google Maps API a.lat不是函数错误
- getItemAtIndex不是函数错误
- Javascript停止函数错误
- 对话框函数错误无效函数
- Javascript 自定义函数错误
- 因果报应单元测试'未定义'不是函数错误