【发布时间】:2018-01-30 05:06:42
【问题描述】:
任何人都可以帮助我编写一个可以突出显示选定链接的脚本吗?
<div id="productnav">
<nav>
<ul class="nav">
<li><a href="<?php echo $prefix; ?>pages/one.php?category=1" id="navelement1"<?php if ($c == 1) echo ' class="current"';?>>One</a></li>
<li><a href="<?php echo $prefix; ?>pages/two.php?category=2" id="navelement2"<?php if ($c == 2) echo ' class="current"';?>>Two</a></li>
<li><a href="<?php echo $prefix; ?>pages/three.php?category=3" id="navelement3"<?php if ($c == 3) echo ' class="current"';?>>Three</a></li>
<li><a href="<?php echo $prefix; ?>pages/four.php?category=4" id="navelement4"<?php if ($c == 4) echo ' class="current"';?>>Four</a></li></li>
</ul>
</nav>
</div>
下面的代码只保持第一个点击的链接突出显示,一旦您在所选页面上选择另一个项目,它就不再保持活动状态。
Array.prototype.forEach.call(
document.querySelectorAll('#productnav a[href]'),
function(t) {
var hr = t.href.split("/").pop();
if (window.location.href.indexOf(hr) > -1)
t.className = 'active';
else
t.className = '';
}
);
这里的 CSS
#productnav ul li a.active { border-right: solid 8px rgb(200,10,50); text-decoration: none; background-color: #4E5765; !important; }
谢谢...
【问题讨论】:
-
请将你的代码压缩成一个sn-p,你不需要3个
-
请在 sn-p 中只写 HTML 而不是 PHP。
-
您是否进行了调试以了解为什么某些链接可能无法通过您在 indexOf 的检查?您正在比较 HREF 以查看它是否包含当前页面 URL 并突出显示那些包含的链接。可能只有 1 个链接成功通过该测试并获得分配的“活动”类。您是否检查过元素以查看是否添加了“活动”类?
-
你试过我给你的任何代码sn-ps吗?
标签: javascript jquery twitter-bootstrap