作为我论文的一部分,我实现了一个网站,它有一个元素导航和内容div。
我尝试使用url中的哈希值来显示正确的内容div,其他div被隐藏/设置为无。
当我点击nav元素时,url会更新(像默认行为一样),但是它没有显示正确的div,因为它没有像它应该的那样添加活动类。
active类只将display设置为block,就像上面的注解行一样。
我真的不知道该如何组织这整件事。我也想过把这两部分合并起来,但我不知道怎样做最好。
const pathName = window.location.hash.replace("#", "");
// Linking nav element with div
// And displaying active
navLinks.forEach((link) => {
link.addEventListener("click", (e) => {
// e.preventDefault();
const targetDiv = link.getAttribute("href").substring(1);
divs.forEach((div) => {
if (div.id === targetDiv || !pathName) {
// div.style.display = "block";
div.classList.add("active");
} else if (div.id == pathName) {
document.getElementById(pathName).classList.add("active");
} else {
// div.style.display = "none";
div.classList.remove("active");
}
});
});
});
console.log("Pathname: " + pathName);
if (!pathName || pathName == "") {
// document.getElementById("Home").style.display = "block";
document.getElementById("Home").classList.add("active");
} else {
// document.getElementById(pathname).style.display = "block";
document.getElementById(pathName).classList.add("active");
}
1条答案
按热度按时间vojdkbi01#
在@Yogi的评论帮助了我之后,如果有人有同样的问题,这是我的工作代码: