首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由异步.get jQuery函数引起的表布局错误

由异步.get jQuery函数引起的表布局错误
EN

Stack Overflow用户
提问于 2014-04-08 23:47:20
回答 1查看 58关注 0票数 0

我正试图从数据库中为每个单元格填充一个带有不同信息的时间表。该表由以下功能刷新:

代码语言:javascript
复制
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并关闭异步,因为它大大增加了加载页面的时间,但目前我还没有找到解决办法。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-09 00:38:18

因为您正在进行异步调用,所以需要一种机制将数据返回到它所属的DOM中(而不仅仅是连接它)。因此,您需要将k和l传递到get命令中。您可以使用内置的k和i插入占位符,例如

"< td id='my_td" + k + "_" + l + "'>"

当ajax返回时,您可以将数据放在它所属的DOM中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22950340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档