0

ナビゲーション バーで現在のメニュー ページを強調表示できない理由がわかりません (私が完全な初心者であるという事実を除いて :-) 私は JQuery 関数を使用しています。ネット、どれも機能していません。機能は次のとおりです。

<script type="text/javascript">
    $(function(){
        var path=window.location.pathname;
        path=path.replace(/\/$/, "");
        path = decodeURIComponent(path);

        $('#menu a').each(function() {
            var href=$(this).attr('href');
            if (path.substring(0, href.length) === href) {
            $(this).closest('li').addClass('active');
        }

        });

        });
    </script>

私のCSSは:

@charset "UTF-8";
/* CSS Document */

#menu{ width:100%; height:40px; background-color: pink; border-bottom: 1px silver solid;}

#menu ul {

    list-style: none;
    margin:0 auto; 
    position: relative;
    padding:5px 0;
    width: 940px;
}

#menu ul li {
    display:inline;
    margin-left: 150px;

          }

#menu li:first-child {
  margin-left:0;
    }         

#menu ul li a {
  color: silver;
  display:block-inline;
  font: 16px "Comic Sans MS", cursive;
  text-align: center;
  text-decoration: none;  
        }


#menu ul li a:hover {
  background-color: yellow;
  text-decoration:underline;
}
.active{
    color:green;
    }

HTML マークアップは次のとおりです。

<?php
echo<<<END

    <div id="menu">
                    <ul>
                    <li><a id="home" style="color:white; font-size:16px;" href="$doc_root/index.php" title="Home Page">Enzo</a></li>
                    <li><a id="travel" href="$doc_root/travel/grid.php" title="My Trips"><span>travelling</span></a></li>
                    <li><a id="images" href="#">images</a></li>
                    <li><a id="words" href="#">words</a></li>
                    <li><a id="about" href="#">about</a></li>
                    </ul>
            </div>  
END;
?>

何が悪いのかわからない、おそらく私のcss。簡単にするために color:green だけです。「アクティブな」クラスが CSS メニュー ページに正しく挿入されているかどうかはわかりません。問題を解決するためのヒントやその他の解決策を教えてください。みんな大好き:-)

4

2 に答える 2

0

PHP変数であると推測される $doc_root が次の形式であることを確認してください

<?=$doc_root?>

または、ショート オープン PHP タグがオンになっていない場合は、試してみてください。

<?php echo $doc_root; ?>

代わりは。

これは、html に正しく書き出されるようにするためです。ブラウザーで作業のソースを表示し、変数 $doc_root の値ではなく $doc_root が表示される場合は、おそらくそこに問題があります。

于 2013-07-04T09:31:03.590 に答える