为了账号安全,请及时绑定邮箱和手机立即绑定

为动态创建的链接 JS 设置一个 .active 类

为动态创建的链接 JS 设置一个 .active 类

白板的微信 2023-05-11 14:33:03
几周前我构建了一个导航栏,然后才意识到我没有在上面设置 .active 类。现在,我在 JS 中动态构建了导航栏和链接,现在想为激活的任何一个提供相应的 CSS。这就是我在 JS 中构建导航栏的方式:let womensNav = document.createElement("ul");womensNav.classList.add("womensNav");const el1 = document.createElement("li");el1.innerHTML = "<a>Jeans</a>";el1.addEventListener("click", (e) => {      document.location.href =        "https://www.martadolska.com/product-category/women/womens-jeans";});womensNav.appendChild(el1);document.querySelector(".ast-woocommerce-container").appendChild(womensNav);我有不止一个链接,但出于这个目的,我不需要全部显示。所以现在的目标是构建一个通用函数,为导航栏中的活动元素提供相应的类。document.querySelectorAll("#womensNav li").forEach(function (ele) {      ele.addEventListener("click", function (e) {        e.preventDefault();        document          .querySelectorAll("#womensNav li a.active")          .forEach((ele) => ele.classList.remove("active"));        ele.parentNode.classList.toggle("active");      });    });这就是我的 CSS 的样子:.womensNav li a:hover {  color: var(--main-text-color);  text-decoration: line-through darkred solid;}.womensNav li a::before {  content: "";  position: absolute;  width: 100%;  height: 2px;  bottom: 7px;  left: 0;  background-color: #b22222;  visibility: hidden;  transform: scaleX(0);  transition: all 0.3s ease-in-out 0s;}.womensNav li a:hover::before {  visibility: visible;  transform: scaleX(1);}.womensNav li a:active::before {  content: "";  position: absolute;  width: 100%;  height: 2px;  bottom: 10px;  left: 0;  background-color: #b22222;}// up until this point everything works.active {  text-decoration: line-through darkred solid;}我猜 JS 代码的第二个片段中缺少/不完全正确,因为当我的链接处于活动状态时什么也没有发生。我得到了我想要得到的动画,但是一旦用户被重定向到那个特定的链接,它就会消失,所以你不知道你在哪个子页面上。
查看完整描述

1 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

这是错误的

ele.parentNode.classList.toggle("active");

“ele”是<li>,您正在通过 parentNode 添加“active”类<ul>,最好使用单击中的“e”事件并使用 e.target,然后尝试在 上设置活动类<a>或使用childNode/children 获取你的<a>


查看完整回答
反对 回复 2023-05-11
  • 1 回答
  • 0 关注
  • 197 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信