我正在创建菜单,如果特定页面是最新的,菜单项会分配不同的颜色。 简单的情况。 所以我这样做:
<?php $page = $_SERVER['SCRIPT_NAME'];?>
<?php if ($page == "index.php"){ echo "class='active'";} ?> >
<a href="index.php">Home</a>
除了一个页面之外,它适用于每个页面。 我尝试了stackoverflow上建议的其他一些选项
How to get current PHP page name,如:
echo basename($_SERVER['PHP_SELF']); returns file_name.php
和
if(basename(__FILE__) == 'file_name.php') {
//Hide
} else {
//show
}
仍然无效。
答案 0 :(得分:0)
$pagename = basename($_SERVER['PHP_SELF']);
if($pagename=='index.php'){
echo "class='active'";
}
答案 1 :(得分:0)
根据您提供的数据,我建议使用client-side解决方案而不是server-side解决方案。我的意思是你使用javascript。
这可以按如下方式完成:
<ul id="menu">
<li><a href="index.php">Home</a></li>
<li><a href="about.php">About</a></li>
<li><a href="any/other/path/index.php">Any Other</a></li>
</ul>
<script>
function setCurrentNavLink(id){
nav = document.getElementById(id);
links = nav.getElementsByTagName('a');
for (i = 0; i < links.length; i++){
if (links[i].href == location.href){
links[i].className = 'current';
break;
}
}
}
setCurrentNavLink('menu');
</script>
查看此演示:http://jsbin.com/tomid/1
答案 2 :(得分:0)
排序。问题出在JQuery中,那就是在当前页面上运行Tabs。
$(document).ready(function(){
// When a link is clicked
$("a.tab").click(function () {
// switch all tabs off
$("ul.tabs li a.active ").removeClass("active");
//$(".active ").removeClass("active");
// switch this tab on
$(this).addClass("active");
//$(".collapse navbar-collapse").addClass("active");
// slide all content up
$(".content").slideUp();
// slide this content up
var content_show = $(this).attr("title");
$("#"+content_show).slideDown();
});
});
错误发生在第3部分,其中Class .active已从Every对象中删除。包括标题。因此标题不显示为活动状态。 除此之外,必须仅从选项卡选项卡中删除类.active。