Css вопрос выбора пункта меню jQuery / cakephp - PullRequest
0 голосов
/ 26 апреля 2011

Привет всем, я разрабатываю приложение в cakephp и определил элемент menu_top.ctp, как показано ниже:

<script type="text/javascript">var path =location.pathname;

`

    $(document).ready(function () {
        alert(path);
        /* select the menu nav tab based on the url */
        $("#menu li a[href='" + [ path ] + "']").parents("li").each(function() { 
            $(this).addClass("current-menu-item");
        });

    });
</script>
<div id="welcomeMsg">
<?php 

    if($session->check('Auth.User')):
     echo "<span style='float:right;color:#ffffff;'> Welcome ".$session->read('Auth.User.username')."</span>";
    endif       
?>
</div>
<div style="clear:both;"></div>
<div id="topNav"> 
    <?php 
        if($session->check('Auth.User')): ?>
            <ul id="menu" style="margin-top:10px;">
                <li>
                  <?php echo $this->Html->link('Home',array('controller' => 'pages', 'action' => 'display', 'home')); ?>
                </li>
                    <?php if($session->read('Auth.User.admin') == 1): ?>
                 <li class="">
                    <?php echo $this->Html->link('Admin',array('controller' => 'admin','action'=>'index')); ?>
                </li>
                <?php endif ?>
                <li class="">
                  <?php echo $this->Html->link('Terms & Conditions/Privacy Policy',array('controller' => 'toc','action'=>'index')); ?>
                 </li>

                <li class="">
                    <?php echo $this->Html->link('Contact Us',array('controller' => 'contact','action'=>'index')); ?>
                </li>
                <li class="">
                     <?php echo $this->Html->link('About Us',array('controller' => 'about','action'=>'index')); ?>
                </li>
                  <li class="">
                     <?php echo $this->Html->link('Log Out',array('controller' => 'users','action'=>'logout')); ?>
                </li>
            </ul>

Код jquery, определенный выше, выбирает пункт менюкогда URL верхнего уровня открыты в браузере, например.http://localhost/mysite/admin выберет вкладку администратора, но когда я открою http://localhost/mysite/admin/users выбор будет потерян.Пожалуйста, помогите мне решить эту проблему.Спасибо.

1 Ответ

0 голосов
/ 26 апреля 2011

В функции document.ready измените селектор с

"#menu li a[href='" + [ path ] + "']" 

на

"#menu li a[href^='" + [ path ] + "']"

(обратите внимание на знак ^ перед =)

Источник: http://www.w3.org/TR/css3-selectors/#attribute-substrings

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...