jquery 当“href”值设置为任何链接时,切换li项上的“active”类不起作用

b5lpy0ml  于 2023-03-17  发布在  jQuery
关注(0)|答案(1)|浏览(167)

我为我的网站创建了一个导航菜单,它在活动页面链接上有一些样式,我的代码工作正常,直到我添加任何重定向链接到“a”标记的“href”属性,当我设置“href”值为“#”一切正常。
下面是我的HTML,CSS和JS代码的导航菜单。

$(document).ready(function(){
  $('.navbar ul li').on('click',function(){
    $(this).addClass('active');
    $(this).siblings().removeClass('active');

  })
})
.navbar {
      padding: 0;
    }
  
    .navbar ul {
      margin: 0;
      padding: 0;
      display: flex;
      list-style: none;
      align-items: center;
    }
  
    .navbar li {
      position: relative;
    }
  
    .navbar a,
    .navbar a:focus {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 10px 0 10px 30px;
      font-family: Georgia, serif;
      text-transform: uppercase;
      letter-spacing: 1px;
      font-size: 13px;
      font-weight: 400;
      color: rgb(0, 0, 0);
      white-space: nowrap;
      transition: 0.3s;
      text-decoration:none;
    }
  
    .navbar a i,
    .navbar a:focus i {
      font-size: 12px;
      line-height: 0;
      margin-left: 5px;
    }
  
    .navbar a:hover,
    .navbar .active>a,
    .navbar .active:focus,
    .navbar li:hover>a {
      color: green;
      text-decoration: underline;
    }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<nav id="navbar" class="navbar">
        <ul>
          <li class="active"><a href="index.php" >Home</a></li>
          <li><a href="workflow.php">Work flow</a>
          <li><a href="illustration.php">Illustration</a></li>
          <li><a href="about.php">About</a></li>
          <li><a href="contact.php">Contact</a></li>
        </ul>
      </nav><!-- .navbar -->
gjmwrych

gjmwrych1#

我自己解决了这个问题,下面是相同的代码:

<nav id="navbar" class="navbar">
    <ul>
      <li class="<?php if ($page=='home') {echo "active";} ?>"><a href="index.php" >Home</a></li>
      <li class="<?php if ($page=='workflow') {echo "active";} ?>"><a href="workflow.php">Work flow</a>
      <li class="<?php if ($page=='illustration') {echo "active";} ?>"><a href="illustration.php">Illustration</a></li>
      <li class="<?php if ($page=='about') {echo "active";} ?>"><a href="about.php">About</a></li>
      <li class="<?php if ($page=='contact') {echo "active";} ?>"><a href="contact.php">Contact</a></li>
    </ul>
  </nav><!-- .navbar -->

这是我修改的Html,在类属性中添加了If else条件。还在每个页面的下面添加了链接被重定向的行。

<?php 
    $page = 'home';
?>

相关问题