2014-01-31 3 views
-3

Требуется добавить класс литийJquery добавить класс Li активный

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> 

если example.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> 

конец и т. Д. Пожалуйста, помогите!

Не работает

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

, что полный URL? Вы можете проверить текущий href, если он соответствует href по вашей ссылке. Но вам, вероятно, придется разделить текущий href в определенный момент. Не знаете, где, если вы не указали это, или, по крайней мере, часть строки до admin.php – timo

+0

@ user3008011 вы видели мой ответ –

ответ

0

попробовать этот Jquery

первые дают id к вашему ul

<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

ОЧЕНЬ БОЛЬШОЙ СПАСИБО, РАБОТАЮЩИЙ КОД ДЖЕРИ! – 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

Попробуйте добавить скрипт в admin.php и заменить ваш код li с моим кодом? – 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, что это потомок a «s href матчи с текущим URL. Это также делает вашу разметку аккуратной и удобной.

Использование JavaScript вы можете использовать .filter() метод:

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

Как подключить этот скрипт? – user3239481

+0

@ user3239481 Вы слушаете событие DOM 'ready'? – undefined

+0

@ user3239481 Используя теги 'script'? – undefined

Смежные вопросы