Javascript-需要在调用函数之前重置所有页面元素
我有一个函数,可以创建一个随机计划。单击一个按钮,我想重置所有值并重新创建另一个计划。我发现重新加载页面更容易,而不是将所有元素重新初始化为它们的原始值。当我有两个单独的按钮时,一个用于生成时间表,另一个用于重新加载,这非常有效 但是,我需要一个按钮来同时执行这两个操作,但是当我在函数的开头调用reload时,会填充计划并再次自动重新加载Javascript-需要在调用函数之前重置所有页面元素,javascript,Javascript,我有一个函数,可以创建一个随机计划。单击一个按钮,我想重置所有值并重新创建另一个计划。我发现重新加载页面更容易,而不是将所有元素重新初始化为它们的原始值。当我有两个单独的按钮时,一个用于生成时间表,另一个用于重新加载,这非常有效 但是,我需要一个按钮来同时执行这两个操作,但是当我在函数的开头调用reload时,会填充计划并再次自动重新加载 function generateSchedule() { window.location.reload(); for (var i =
function generateSchedule() {
window.location.reload();
for (var i = 0; exams_scheduled.length < TOTAL_EXAMS; i++){
var time = randomNumber(3); // 3 exam timeslots per day
var day = randomNumber(6); // 6 exam days per week
var week = randomNumber(2); // 2 week period
var weekday = day + '' + week;
var exam_id = "exam-" + time + '' + weekday;
if ((exam_count[weekday] < EXAMS_PER_DAY) && (!exams_scheduled.includes(exam_id))) {
exam_count[weekday] += 1;
exams_scheduled.push(exam_id);
document.getElementById(exam_id).className += "exam";
}
}
}
函数generateSchedule(){
window.location.reload();
对于(var i=0;考试计划。长度<总考试;i++){
var time=randomNumber(3);//每天检查3个时间段
var day=randomNumber(6);//每周6次考试
变量周=随机数(2);//2周周期
var weekday=日+周;
var exam_id=“考试-”+时间+“”+工作日;
如果((考试计数[工作日]<每天考试数)&(!已安排考试。包括(考试id))){
考试计数[工作日]+=1;
考试计划。推送(考试id);
document.getElementById(考试id).className+=“考试”;
}
}
}
下面是一个代码笔,它在generate函数的开头调用reload。如您所见,计划将生成并再次自动重新加载
有人能提出解决办法吗 我能理解的是,您希望按钮重新加载页面,但在按钮重新加载页面后,它会立即调用新的时间表,对吗? 如果是这样的话,您可以在日程表上使用
窗口。onload
,以便在页面加载后立即自动调用它?
或者也许。。。
setTimeout(callNewSchedule,100)
函数将非常有用
只需设置按钮触发时的延迟。不过,我怀疑这是否可行。因为一旦该页面重新加载,它就会丢失所有以前的数据,setTimeout
函数将永远不会发生。
因此,
onload
是解决这一问题的最佳选择。花了一段时间,但似乎效果不错。现在不必重新加载页面即可获得新值
函数getRandomInt(最小值、最大值){
返回Math.floor(Math.random()*(max-min+1))+min;
}
每天的施工检查次数=2次;
const TOTAL_考试=5次;
var检查天数={
00: 0,
10: 0,
20: 0,
30: 0,
40: 0,
50: 0,
01: 0,
11: 0,
21: 0,
31: 0,
41: 0,
51: 0
};
var检查_数组=[];
函数generateSchedule(){
检查_数组=[];
变量c=[[0,1,2],[0,1,2,3,4,5],[0,1];
对于(var i=0;i表格,
th,
运输署{
边框:1px纯黑;
}
M
T
W
R
F
s
早晨
下午
傍晚
M
T
W
R
F
s
早晨
下午
傍晚
生成
重新加载
打印
提供JSFIDLE.codepen提供的,种类用户您可以检查窗口.位置.搜索
中的?重新加载
,然后执行函数删除css类有什么问题(简单循环,文档.getElementsByClassName()
/文档.querySelectorAll()
),重置对象中的所有值(简单循环,用于…
/Object.keys()
)和清空数组(.length=0
)?()我正在寻找一种便宜的替代方法window.onload=generateSchedule();
将其放在函数generateSchedule()
之后,代码就完成了。希望这对window.onload=generateSchedule()有所帮助
不会做你认为它会做的事…;)你把它放在最下面了吗?因为如果你把它放在最上面,它根本不会工作:3如果你把它放在最下面,你根本不需要窗口。onload
<代码>window.onload=generateSchedule()这将立即执行的函数generateSchedule()
的返回值undefined
指定为onload
处理程序-因此它完全错误。哦,是的。。。呵呵。。。我猜我几个小时前得到的信息是错误的关于加载页眉和页脚的事情。。。谢谢你在我用它之前把它清理干净。