2016-04-13 57 views
0

我知道这个问题遇到很多,但我只是无法弄清楚如何使用,已经回答的帖子来做到这一点。 这是我的看法管理或突出显示活跃的链接或页面Codeigniter

<<li class="active"> <a class="page-scroll" href="<?php echo base_url();?>nowaste_control/index#about">Home</a> </li> 
    <li ><a class="page-scroll" href="<?php echo site_url('nowaste_control/index#product'); ?>">Products</a> </li> 
    <li > <a class="page-scroll" href="<?php echo base_url();?>nowaste_control/index#technology">Technology</a> </li> 

这是我的jQuery

<script type="text/javascript"> 
jQuery(function($){ 
    $('a[href="'+window.location.pathname+window.location.hash+'"]').parent().addClass('active'); 
}); 
</script> 

我的路径,这个 - >本地主机/ nowaste/nowaste_control /索引#约

这里所有的网页越来越活跃...

+0

回声$这个 - > URI->段(1);检查你的条件是否匹配 – msvairam

+0

返回什么'$ this-> uri-> segment(1)'? –

+0

其返回nowaste –

回答

0

你实际上有多个网段的网址,但只有比较第一个。 segment()仅弹出数组中的第一个数组部分。这意味着你只有得到nowaste_control,而从来没有index

你真正想要的是$this->uri->uri_string()它会给你整个不变的字符串。

这提出了另一个问题,因为您的链接使用hash fragment(#),但codeigniter将永远不会在URL请求中观察到这一点,因为Apache不会在请求中接收此消息,它仅用于客户端。

所以你真正需要的是一个JavaScript解决方案。这里有一个jQuery刚刚起作用。

jQuery(function($){ 
    $('a[href="'+window.location.pathname+window.location.hash+'"]').parent().addClass('active'); 
}); 
+0

我用它,但仍然不工作 –

+0

什么改变是要查看页面 –

+0

我改变了我的代码请 –

0

如果您正在使用JQuery也许你可以通过在客户端处理它做这样的事情:

<script type="text/javascript"> 
    $(function() { 
     alert("Current Pathname:" + window.location.pathname); 
     if(window.location.pathname=="some path"){ 
     $("#someLi").addClass("active"); 
     }else if(window.location.pathname=="some other path"){ 
     //.. 
     } 
    }); 

</script>