gpt4 book ai didi

javascript - 当它有一些子页面时,如何将事件类添加到 nav ul li 元素?

转载 作者:行者123 更新时间:2023-11-28 05:47:09 25 4
gpt4 key购买 nike

我正在 Drupal 8 网站上工作。我在将事件类分配给导航列表元素时遇到问题。我使用以下代码来设置事件类,它适用于相同的 url。 代码如下所示

 <nav id="getnav">
<ul>
<li>
<a class="" data-drupal-link-system-path="user" href="/drupal/todo">Todo</a>
</li>
<li>
<a class="" data-drupal-link-system-path="user" href="/drupal/files">Files</a>
</li>
<li>
<a class="" data-drupal-link-system-path="user" href="/drupal/photos">Photos</a>
</li>
</ul>
</nav>

我使用jquery函数根据url设置事件类。使用以下代码。

 function setActive() {
var myurl =window.location.href.substr(window.location.href.lastIndexOf("/")+1);
$("#getnav ul li a").each(function(){
if($(this).attr("href") == '/drupal/'+myurl )
$(this).addClass("active");
});
}
window.onload = setActive();

真正的问题是每当访问像 todo/page2 这样的子页面时,事件类就消失了。 http://localhost/drupal/todo::: 工作正常,但在访问子页面后,如

 http://loclahost/drupal/todo/add

类(class)结束了。

请给我有关此问题的建议。

我也想将 Active 类设置为所有子页面。在 todo/* 之后

最佳答案

您可以使用纯 CSS 来完成此操作。您需要将 class/id 添加到您的 body 元素和 nav li 元素,然后您可以在 css 中定义它们的组合以突出显示。例如,假设这是您的 html:

< body id="todo_body">
<nav id="getnav">
<ul>
<li class="todo_dropdown">
<a class="" data-drupal-link-system-path="user" href="/drupal/todo">Todo</a>
</li>
<li class="files_dropdown">
<a class="" data-drupal-link-system-path="user" href="/drupal/files">Files</a>
</li>
<li class="photos_dropdown">
</body>
<a class="" data-drupal-link-system-path="user" href="/drupal/photos">Photos</a>
</li>
</ul>
</nav>
</body>

现在,您可以使用如下所示的 css 将突出显示样式应用于“应该处于事件状态”的 li 元素:

#todo_body .todo_dropdown,
#files_body .files_dropdown,
#photos_body .photos_dropdown
{
background-color: red;
color: white;
/*Your css styles for active nav item will come here */
}

您还可以向 should be active li 元素中包含的任何元素添加任何样式。

关于javascript - 当它有一些子页面时,如何将事件类添加到 nav ul li 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38408329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com