2014-01-31 50 views
-3

需要添加类李jQuery的加李类活跃

ADMIN.TPL:

<ul class="nav nav-tabs"> 
<li><a href="admin.php">{"_MENUINFO"|lang}</a></li> 
<li><a href="admin.php?site=ban_add">{"_ADDBAN"|lang}</a></li> 
<li><a href="admin.php?site=ban_add_online">{"_ADDBANONLINE"|lang}</a></li> 
</ul> 

如果exam​​ple.com/admin.php需要

<li class="active"><a href="admin.php">{"_MENUINFO"|lang}</a></li> 
<li><a href="admin.php?site=ban_add">{"_ADDBAN"|lang}</a></li> 
<li><a href="admin.php?site=ban_add_online">{"_ADDBANONLINE"|lang}</a></li> 

example.com /admin.php?site=ban_add

<li><a href="admin.php">{"_MENUINFO"|lang}</a></li> 
<li class="active"><a href="admin.php?site=ban_add">{"_ADDBAN"|lang}</a></li> 
<li><a href="admin.php?site=ban_add_online">{"_ADDBANONLINE"|lang}</a></li> 

end等。 请帮忙!

不工作

<li class="<?php if ($page=="admin.php") echo "active"?>"> 
+0

什么是完整的网址是什么?您可以检查当前的href是否与链接上的href匹配。但是,您可能需要在当前的某个时刻分割当前的href。不知道在什么地方,除非你提供这个,或者至少在admin.php之前的字符串部分 – timo

+0

@ user3008011你见过我的回答 –

回答

0

试试这个JQUERY

先给idul

<ul class="nav nav-tabs" id="nav_tabs"> 

然后使用jquery

$(document).ready(function(){ 
    $('ul#nav_tabs li a').each(function(index, element) { 
     var li = $(element).attr('href'); 
     $(element).parent().removeClass("active"); 
     var filename = window.location.href.substr(window.location.href.lastIndexOf("/")+1); 

     if(filename==li) 
     { 
       $(element).parent().addClass("active"); 
     } 

    }); 
}); 

你也可以使用PHP

<?php 
$my_url = $_SERVER['REQUEST_URI']; 
$page = substr($my_url, strrpos($my_url, '/') + 1) 
?> 

<ul class="nav nav-tabs" id="nav_tabs"> 
    <li <?php if($page=="admin.php") echo 'class="active"'; ?>><a href="admin.php">{"_MENUINFO"|lang}</a></li> 
    <li <?php if($page=="admin.php?site=ban_add") echo 'class="active"'; ?>><a href="admin.php?site=ban_add">{"_ADDBAN"|lang}</a></li> 
    <li <?php if($page=="admin.php?site=ban_add_online") echo 'class="active"'; ?>><a href="admin.php?site=ban_add_online">{"_ADDBANONLINE"|lang}</a></li> 
</ul> 
+0

非常感谢,JQUERY CODE工作! – user3239481

+0

@ user3239481欢迎! –

1

在点击链接页面上会刷新,那么你可以使用PHP GET获取页面的名字和下面对李集活动类:

<?php 

if (isset($_GET['site'])) { 
    switch ($_GET['site']) { 
     case 'ban_add': 
      $activeClass1 = 'active'; 
      break; 
     case 'ban_add_online': 
      $activeClass2 = 'active'; 
      break; 
     default: 
      $activeClass = 'active'; 
      break; 
    } 
} 
?> 

<li class="<?php echo $activeClass; ?>"><a href="admin.php" >{"_MENUINFO"|lang}</a></li> 
<li class="<?php echo $activeClass1; ?>"><a href="admin.php?site=ban_add">{"_ADDBAN"|lang}</a></li> 
<li class="<?php echo $activeClass2; ?>"><a href="admin.php?site=ban_add_online">{"_ADDBANONLINE"|lang}</a></li> 
+0

<?php代码不工作 – user3239481

+0

你试过在admin.php中添加脚本并替换你的李代码与我的代码? – Roopendra

+0

链接了很多,我需要一个简单的解决方案 – user3239481

1

在文件准备就绪jquery写这段代码。每当页面加载获取url并将活动类添加到相应的li标签时。

$(function(){ 
    var pathName = location.pathname; 
    $('.nav-tabs a[href="' + pathName + '"]').closest('li').addClass('active'); 
}); 
+0

可以编写完整的代码?我没有脚本的技能 – user3239481

+0

没有,不起作用 – user3239481

1

我会生成列表动态服务器端和添加一个类的li元素,它的后代ahref与当前URL匹配。这也使您的标记整齐,更易于维护。

使用JavaScript可以使用.filter()方法:

$(function() { 
    $('.nav-tabs a').filter(function() { 
     return this.href === document.URL; 
    }).closest('li').addClass('active'); 
}) 
+0

如何连接这个脚本? – user3239481

+0

@ user3239481你听DOM准备好了吗? – undefined

+0

@ user3239481通过使用'script'标签? – undefined