>source

나는 나의항해별도의 페이지로 Navigation.php 이 페이지를 <?php include 'header.php'; ?> 모든 페이지에서.
하지만 페이지로 이동할 때, 예를 들어 :페이지, 그내비게이션 바의 버튼은 클래스 class='active' 그리고 그 클래스는 자바 스크립트로 추가됩니다.
문제는 다음과 같은 2 단계 페이지로 이동할 때 발생합니다.
Portfolio > Portfolio Item
해당 스크립트는 클래스를 추가하지 않습니다. Portfolio 단추.

Navigation.php 페이지:

<ul class="nav nav-pills" id="mainNav">
    <li <?php echo (basename($_SERVER['PHP_SELF']) == 'index.php') ? 'class="active"' : ''; ?>>
        <a class="nav-item nav" href="/home">
            Home
        </a>
    </li>
    <li <?php echo (basename($_SERVER['PHP_SELF']) == 'about.php') ? 'class="active"' : ''; ?>>
        <a class="nav-item"  href="/about">
            About
        </a>
    </li>
    <li <?php echo (basename($_SERVER['PHP_SELF']) == 'services.php') ? 'class="active"' : ''; ?>>
        <a class="nav-item"  href="/services">
            Services
        </a>
    </li>
    <li <?php if ((basename($_SERVER['SCRIPT_FILENAME'], '.php')) == 'portfolio' or 'portfolioItem') echo "class='active'";?>>
        <a class="nav-item"  href="/portfolio">
            Portfolio
        </a>
    </li>
    <li <?php echo (basename($_SERVER['PHP_SELF']) == 'showcase.php') ? 'class="active"' : ''; ?>>
        <a class="nav-item"  href="/showcase">
            Showcase
        </a>
    </li>
    <li <?php echo (basename($_SERVER['PHP_SELF']) == 'blog.php') ? 'class="active"' : ''; ?>>
        <a class="nav-item"  href="/blog">
            Blog
        </a>
    </li>
    <li <?php echo (basename($_SERVER['PHP_SELF']) == 'contact.php') ? 'class="active"' : ''; ?>>
        <a class="nav-item"  href="/contact">
            Contact
        </a>
    </li>
</ul>


Javascript 나는 사용하고있다 :

<script>
  $(function () {
      var pgurl = window.location.href.substr(window.location.href.lastIndexOf("/") + 1);
      $("nav-pills ul li").each(function () {
          if ($(this).attr("href") == pgurl) {
              $(this).parent().addClass('active');
          }
          if ((($(this).attr("href") == 'index.php')||($(this).attr("href") == '')) && (pgurl == '')) {
              $(this).parent().addClass("active");
          }
      })
  });
</script>


  • 답변 # 1

    바꿔보세요

    <?php if ((basename($_SERVER['SCRIPT_FILENAME'], '.php')) == 'portfolio' or 'portfolioItem') echo "class='active'";?>>
    
    
    

    ...에

    <?php if ( (basename($_SERVER['SCRIPT_FILENAME'], '.php')) == 'portfolio.php' || (basename($_SERVER['SCRIPT_FILENAME'], '.php')) == 'portfolioItem.php'  ) { echo "class='active'"; }  ?>>
    
    
    

  • 이전 html - 분할 된 웹 사이트 디자인 및 바닥 글이 표시되지 않습니다 표시하려면 어떻게해야합니까?
  • 다음 ggplot2 - R의 범례에 geom_hline 추가