我目前正在开发一个设施预订系统。在预定设施的过程中,用户可以选择一个时隙。当用户选择预定日期和功能时,会发出ajax调用来检索所有可用的时隙。返回的数据包括工作日和周末的时段(是的,它们有不同的时间段)。
工作日、周末和时段都放在桌子上。还有另一个函数来检查所选日期是工作日还是周末。如果是前者,周末时段就会被隐藏起来。如果是后者,反之亦然。
工作日开放时间: 08:00 - 21:00
周末开放时间:08:30-17:30
若要隐藏所述时隙,请使用以下代码:
if (lastId != end_time_id) {
for (var i = lastId + 1; i <= end_time_id; i++) {
$('#trTimeslot' + i).hide();
}
}如果代码运行良好,时间插槽将如下所示:
选定日期:2017年6月27日星期二(工作日)

选定日期:2017年7月1日星期六(周末)

但是,有时代码不起作用。有时,所显示的时段将同时显示工作日和周末:
选定日期:2017年6月27日星期二(工作日)

还必须注意的是,填充ajax请求的7-8函数是在显示时隙之前调用的。隐藏“周末”或“工作日”行的函数是第五个函数。
问题是,在向用户显示时隙之前,我能做些什么来确保行被隐藏吗?
我很抱歉,我不能显示更多的代码,因为公司在这类事情上相当敏感。
如有任何帮助或建议,将不胜感激。
发布于 2017-06-27 03:45:14
要隐藏的代码在填充时间表的代码之前运行,在将数据插入时间表并显示后将循环添加到回调中。
发布于 2017-06-27 03:51:27
这可能不是问题的绝对答案,我建议采取相反的做法。从问题描述中,我假设有一个ajax调用,它返回数据&然后函数触发隐藏不相关的行。由于DOM遍历,将出现一分钟的延迟。
另一个选择
https://stackoverflow.com/questions/44771903
复制相似问题