2016-04-13 60 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>