9

我知道这个问题经常出现,但我只是不知道如何使用已经回答的帖子来做到这一点。

我有一个带有导航链接的标题。我想添加class="active"到目前处于活动状态的链接。

如果我有以下导航,我该怎么做?

<nav>
    <ul id="main_nav">
        <li class="home">
            <a href="search">
                <i class="icon-search"></i>
                <span>BEDRIJF ZOEKEN</span>
            </a>
        </li>
        <li class="categorie">
            <a href="categorieen/all">
                <i class="icon-list-ul"></i>
                    <span>CATEGORIE</span>
            </a>
        </li>
        <li class="aanbieding">
            <a href="aanbiedingen">
                <i class="icon-shopping-cart"></i>
                    <span>AANBIEDING</span>
            </a>
        </li>
        <li class="vacature">
            <a href="vacatures">
                <i class="icon-copy"></i>
                <span>VACATURE</span>
            </a>
        </li>
        <li class="agenda">
            <a href="agenda">
                <i class="icon-calendar"></i>
                <span>AGENDA</span>
            </a>
        </li>
        <li class="contact">
            <a href="contact">
                <i class="icon-envelope"></i>
                <span>CONTACT</span>
            </a>
        </li>
    </ul>
</nav>

我试过这个,但没有奏效:

<script>
$(function() {
    var href = $(this).find('a').attr('href');
    alert(window.location.pathname)
    if (href === window.location.pathname) {
      $(this).addClass('active');
    }
}); 
</script>   

也许有更好的 Codeigniter 方式?

4

4 回答 4

16

试试这个。我认为不需要 javascript 或 jquery。

如果您使用的是 codeigniter,那么您可以使用 URI 类。

<li class="home">
    <a class="<?php if($this->uri->segment(1)=="search"){echo "active";}?>" href="<?=base_url('search')?>">
        <i class="icon-search"></i>
        <span>BEDRIJF ZOEKEN</span>
    </a>
</li>

如果您遇到任何问题,请告诉我

于 2013-08-13T12:54:36.390 回答
7

我创建了一个助手并将其保存到名为“menu_helper.php”的助手目录中:

<?php 
if(!defined('BASEPATH')) exit('No direct script access allowed');

if(!function_exists('active_link')) {
  function activate_menu($controller) {
    // Getting the class instance.
    $ci = get_instance();
    // Getting the router class to actived it.
    $class = $ci->router->fetch_class();
    return ($class == $controller) ? 'active' : '';
  }
}

然后在 config/autoload.php 中,我在第 91 行添加了“菜单”作为助手。

最后一步是在访问页面(即登录页面)时放置用于打印“活动”类的代码:

<li class="<?php echo activate_menu('login'); ?>">    
  <?php echo anchor('login', 'Login'); ?> 
</li>
于 2015-07-26T22:55:17.217 回答
0
if (href === window.location.pathname) {
   $('a[href='+ href +']').addClass('active');
}
于 2013-08-13T12:48:43.963 回答
0

试试这个:

<a class="<?=(current_url()==base_url('search')) ? 'active':''?>" href="<?=base_url('search')?>">
于 2015-06-19T08:56:52.353 回答