这是一个带有下拉列表的基本引导程序导航栏,它正在header.php中使用(因此每个页面都不能拥有自己的带有活动标签的列表项的导航栏)
当你去一个页面时,我一直用它来回应一个活动标签:
<?=echoActiveClassIfRequestMatches("balhblah")?>
第一个问题:当<li>
有一个下拉列表时,回显将不起作用。
第二个问题:找出一种方法让主页<li>
在选择<li>
下拉时显示,就像“摇晃”一样。
<li class="dropdown" <?=echoActiveClassIfRequestMatches("foods")?>>
<a href="foods.php" >foods</a>
<ul class="dropdown-menu">
<li><a href="#">shakes</a></li>
<li><a href="#">cookies</a></li>
</ul>
</li>
想要为此做一个Bootply,但是当你的href是#时 - 基本上我无法弄清楚如何链接到Bootply中的另一个页面,这样你就可以看到活动回声的结果。不确定你是否可以。
答案 0 :(得分:2)
第一个问题:html-tag(在这种情况下为li)不能有两个类属性,因此您需要执行类似<li class="dropdown <?=echoActiveClassIfRequestMatches("foods")?>">
的操作,这会产生<li class="dropdown active">
。所以你需要你的echoActiveClassIfRequestMatches函数的输出。
第二个问题:php无法读取您网址的哈希部分,请参阅Can I read the hash portion of the URL on my server-side application (PHP, Ruby, Python, etc.)?。您需要使用javascript将partent设置为活动状态。
$('.dropdown-menu li a').on('click', function() { $(this).parent().addClass('active');});