PHP页面名称变量+ jQuery

时间:2012-02-15 16:57:46

标签: php jquery

在实现jQuery页内标签导航系统后,我遇到了一个问题,如何重新定义我的页面名称,以便在我的主导航中将它们设置为“活动”。

我用:

<?php $var_page_name = 'example.php'; ?> 

在我的网站上定义每个页面名称,示例替换为正确的页面名称。

然后,我使用以下内容设置导航中“活动”页面的样式,并使用CSS定义活动类:

<?php global $var_page_name; ?>
<ul>
<li><a<? if($var_page_name == 'index.php') print ' class="active"'; ?> href="index.php">web design</a></li>
</ul>

效果很好。我添加了一个用于导航的页内jQuery标签解决方案。这也有效。

但是,在单击其中一个选项卡并转到新内容div后,它似乎更改了页面名称,因此不再将正确的主导航项视为活动状态。该网址显示为http://www.example.com/index.php#,但如果我将我的活动网页导航变量修改为:

<a<? if($var_page_name == 'index.php' || $var_page_name == 'index.php#' ) print ' class="active"'; ?>

或尝试选项卡使用的div ID:

<a<? if($var_page_name == 'index.php' || $var_page_name == 'index.php#content_2' ) print ' class="active"'; ?>

它无法解决问题。有什么建议吗?

3 个答案:

答案 0 :(得分:1)

这是标签脚本中的一个错误。

当您点击标签时,即使<a>不是标签,也会从您的热门导航中的<a>中删除“有效”课程。

更改行:

// switch all tabs off
$(".active").removeClass("active");

为:

$(".tabs .active").removeClass("active");

或类似于仅从您的标签中删除“有效”类而非页面中所有元素的内容。

答案 1 :(得分:0)

<?php $var_page_name = 'example.php'; ?>

那是错的。使用像

这样的东西
<?php
$exploded = explode($_SERVER['REQUEST_URI']);
<a href="/page/" class="<?php echo ($exploded[1] == "page") ? "active" : ""; ?>">Page</a>

请记住,默认情况下不会将哈希值发送到服务器

答案 2 :(得分:0)

好吧,我认为问题与页面中的jquery代码有关,而不是PHP代码。检查js头代码,我发现了这个:

// When a link is clicked       
$("a.tab").click(function () {                              
  // switch all tabs off            
  $(".active").removeClass("active");
  ...
});

选择器“a.tab”上的点击绑定正在清除整个页面中的所有“.active”类,包括“nav”部分中的那些(位于选项卡上方)。
尝试改变这一行:

$(".active").removeClass("active");

对此:

$("#tabbed_box_1").find(".active").removeClass("active");

应该这样做。