当您单击第一个链接时,页面会重新加载,这就是重置 javascript 的原因(因此没有背景样式)。
将您的 href 值更改为#
,它将起作用(但您不会再更改页面)。
要修复它,您有 2 个选项:
- 禁用链接上的页面重新加载(e.preventdefault),并在 ajax 中加载页面内容(复杂)。
- 管理此服务器端(更容易但需要动态语言)。
对于 2,我假设您使用的是 php。代码大致如下所示:
<?php
$pageActiveIndex = false
if ($_SERVER["REQUEST_URI"] == "index.html") {
$pageActiveIndex = true;
}
//same thing for the other links
?>
<li><a <?php if($pageActiveIndex) echo 'class="activeTab"' ?> href="index.html">Home</a></li>
<li><a <?php if($pageActiveAbout) echo 'class="activeTab"' ?> href="about.html">About</a></li>
<li><a <?php if($pageActiveContact) echo 'class="activeTab"' ?> href="contact.html">Contact</a></li>
<li><a href="someblogaddresshere" target="_blank">Contact</a></li>
当然,target=_blank
在任何地方添加也可以......但我怀疑这是你想要的效果。
编辑
由于您的网站似乎是静态的,因此您可以做一些超级简单的事情来产生效果。
将自定义 css 添加到您的样式表中,在某个类中(我将其命名为“youarehere”),然后打开所有页面并更改它们。
在 index.html 中
<li><a class="youarehere" href="index.html">Home</a></li>
<li><a href="about.html">About</a></li>
<li><a href="contact.html">Contact</a></li>
<li><a href="someblogaddresshere" target="_blank">Contact</a></li>
在 about.html
<li><a href="index.html">Home</a></li>
<li><a class="youarehere" href="about.html">About</a></li>
<li><a href="contact.html">Contact</a></li>
<li><a href="someblogaddresshere" target="_blank">Contact</a></li>
在contact.html
<li><a href="index.html">Home</a></li>
<li><a href="about.html">About</a></li>
<li><a class="youarehere" href="contact.html">Contact</a></li>
<li><a href="someblogaddresshere" target="_blank">Contact</a></li>