Php 如何将活动类添加到codeigniter超链接?
我知道这个问题会遇到很多,但我就是不知道如何使用已经回答过的帖子来解决这个问题 我有一个带有导航链接的标题。我想将Php 如何将活动类添加到codeigniter超链接?,php,jquery,css,codeigniter,Php,Jquery,Css,Codeigniter,我知道这个问题会遇到很多,但我就是不知道如何使用已经回答过的帖子来解决这个问题 我有一个带有导航链接的标题。我想将class=“active”添加到当前处于活动状态的链接中 如果我有以下导航,我怎么做 <nav> <ul id="main_nav"> <li class="home"> <a href="search"> <i class="icon-search
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>
$(函数(){
var href=$(this.find('a').attr('href');
警报(窗口.位置.路径名)
if(href==window.location.pathname){
$(this.addClass('active');
}
});
也许有更好的Codeigniter-ish方法?试试这个。我认为不需要javascript或jquery
if (href === window.location.pathname) {
$('a[href='+ href +']').addClass('active');
}
若您使用的是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>
如果您遇到任何问题,请告诉我试试这个:
<a class="<?=(current_url()==base_url('search')) ? 'active':''?>" href="<?=base_url('search')?>">
我创建了一个助手并将其保存到名为“menu\u helper.php”的助手目录中:
你可以在这里看到这个网站:我只是指向/搜索看看它是否有效。window.location.pathname是/search,所以我不知道它为什么不起作用。@Keessonema让我检查一下使用$('a[href*='+href+']')
或$('a[href$='+href+'])
。那么好的Jquery替代方案。无论如何,谢谢,但我使用的是codeigniter方法:)我想这是可行的,让我先看看它是否适用于其他链接:Dshorter版本:这应该是答案,非常优雅的解决方案。干得好!
<?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' : '';
}
}
<li class="<?php echo activate_menu('login'); ?>">
<?php echo anchor('login', 'Login'); ?>
</li>