2011-06-17 107 views
2

我已经搜索,但找不到我满意的答案,所以 我有一个头文件,它被包含在每个页面的顶部,并且头部的一部分是一个带有3个选项卡的菜单,当用户点击标签浏览器带他们到那个页面(工作正常),我想要的是,当该页面加载时,标签用户点击的任何内容都会突出显示(区分背景颜色)。突出显示选定的标签

这里是HTML:

<div id="top-choicebar"> 
     <ul id="topmenu"> 
      <li><a href="daily.php" class="ww" >Daily</a></li> 
      <li>< href="weekly.php" class="ww">Weekly</a></li> 
      <li>< href="monthly.php" class="ww">Monthly</a></li> 
     </ul> 

<div id="event-menu"> 

新的PHP和jQuery ...任何帮助将大大appriciated

+0

areyou加载页面ajaxly?还是那些只是简单的链接,完全重新加载页面? – Patricia

回答

2

你可以做到这一点的CSS和条件类的手段。

<a href="weekly.php" class="<?= stripos($_SERVER['PHP_SELF'], 'weekly.php') ? 'selected' : ''?>">Weekly</a> 
<a href="monthly.php" class="<?= stripos($_SERVER['PHP_SELF'], 'monthly.php') ? 'selected' : ''?>">Monthly</a> 
0

你可以尝试使用这样的事情,但它很简陋:

<?php if (preg_match("/weekly.php/i", $_SERVER["SCRIPT_NAME"])) { 
    // Tab should be highlighted 
    < href="weekly.php" class="ww active">Weekly</a> 
} else { 
    < href="weekly.php" class="ww">Weekly</a> 
} 
?> 

这将增加一个“主动”类的链接,然后你可以用CSS样式改变背景颜色...

0

我过去总是做的是传递一个参数给正在构建菜单的类,该菜单基于我正在加载的页面。

所以daily.php负荷高达Header.php,并在页眉构建HTML通过它像new Header(0)一个变量,它遍历的链接打印出来,并在一个已经过去了数,它增加了像current类。

所以,如果:

日报== 0
周刊== 1
月== 2

头会选择一个正确的类适用于基于调用它的页面上。

当然,这只有在你的菜单链接被存储在除原始HTML以外的其他地方,比如在数据库中,甚至只是一个数组中。

+0

thx ...标题总是相同的..可以给我提示在iQuery我不使用ajax –

0

有一个类似于.selected{background-color:red}的设置,它定义了你想要查看的不同背景颜色。然后,当您渲染页面时,由于您已经知道它是哪个选项卡,因此您只需使用附加的类来渲染选定的选项卡。如果您通过ajax呈现选项卡内容,则只需找到所有具有“selected”选项卡的选项卡,然后将该选项卡添加到所选选项卡中即可。(“#topmenu li”)live(“click”,function() { (“#selected”); removeClass(“selected”); $(this).addClass(“selected”); });