【发布时间】:2021-07-08 00:31:22
【问题描述】:
大家好,我是编程新手,我需要为学校制作一个网站。 我想在按箭头键时打开下一页。所以我想, 当按下按钮时,我可以将 URL 放入一个数组中以增加索引。 不幸的是,当我按下向下键时,我得到了一些从 1 到 3 的随机数。
const url = ['/#t1', '/#t2', '/#t3', './contact.html', './404.html'];
var index = 0;
$(document).keydown(function(e) {
switch(e.which) {
case 38: // up
up();
break;
case 40: // down
down();
break;
default: return;
}
e.preventDefault();
});
function up() {
index = index - 1;
alert(index);
window.location.href = url[index];
}
function down() {
index = index + 1;
alert(index);
window.location.href = url[index];
}
【问题讨论】:
-
需要意识到,当您切换到新页面时,当前代码已经消失,新页面会加载一个全新的实例。因此,每次加载相同的代码时,索引都会设置为零
-
您可以使用
sessionStorage在页面之间保存数据。 -
我同意 charliefl 的观点,听起来它正在重新加载。此外,我会将您的阻止默认值移至函数的第一行。
-
location.hash = url[index]用于散列。 -
好吧,这是有道理的,你知道如何防止这种情况吗?一切都在 app.js 文件中。
标签: javascript arrays function switch-statement increment