【发布时间】:2026-01-16 02:50:01
【问题描述】:
我正在开发 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
课程已经下课了。
请给我关于这个问题的建议。
我也想为所有子页面设置 Active 类。在 todo/* 之后
【问题讨论】:
-
这可以使用纯 CSS 来完成。您可以将
id或class添加到您的body元素和类到您的nav li元素吗? -
是的,我使用 css 来构建元素
-
可以使用绝对路径
标签: javascript jquery html drupal nav