Webboard

Pełna wersja: Dodanie nowej strony do menu
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Stron: 1 2
Witam, 
mam problem odnośnie nadawania klasy "active" do nowej strony dodanej do menu.

Stronę dodałem standardowo do headera tak ja domyślne (kalendarz, index, szukaj).
Wszystko działa poprawnie, oprócz nadawania na tej stronie klasy activ do headera - przechodząc na tą stronę, nie dołącza się klasa active do linku strony;/
A w jaki sposób próbujesz nadawać klasę active?
Inne podstrony działają?
Daj szablon podstrony test i index

Zastosuj się do notatki.
 
Klasa active nie działa poprawnie, w Upgrade dubluje się z Home, a w pozostałych wyświetla o dziwo tylko Home jako active (w załączniku ss)

Tak prezentuje się cały kod css i header.
Dodatkowo do każdej z tych stron (Upgrade, Awards i Dollars) dodałem do <body> id="" - takie jak w css.
Kod header nie jest mi zbytnio potrzebny.
Potrzebuje pełnego kodu - najlepiej z konsoli przeglądarki, nie szablonów.
Kod szablonów danych podstron, a najlepiej - link forum, które notabene jest online, a z jakiegoś powodu ukrywasz je pod localhostem.
incomebb.net
Obstawiam CSS, albo jakoś nie pobiera klasy active z szablonu, ale wątpię bo reszta działa.
(04.12.2016, 19:14)Penny napisał(a): [ -> ]incomebb.net
Chciałem wejść, zobaczyć a tu z mojego ip:
Protection died IPs active, this IP range is not allowed !

IP pochodzi z Plusa, a dokładniej mobilny internet cyfrowego polsatu :(
Wszystko powinno działać poprawnie, spróbuj uruchomić ponownie usługę/restart routera/inna przeglądarka.

currentPage = $(document).find(".navigation").text();

if (currentPage.indexOf('Portal') != -1)
{
$('.menu li a.portal').addClass('active');
}
else if (currentPage.indexOf('Search') != -1)
{
$('.menu li a.search').addClass('active');
}
else if (currentPage.indexOf('Member List') != -1)
{
$('.menu li a.memberlist').addClass('active');
}
else if (currentPage.indexOf('Calendar') != -1)
{
$('.menu li a.calendar').addClass('active');
}
else if (currentPage.indexOf('Help Documents') != -1)
{
$('.menu li a.help').addClass('active');
}
else if (currentPage.indexOf('NonEx') == -1)
{
$('.menu li a.forum').addClass('active');
}

Tutaj masz kod, który odpowiada za dodawanie klasy active. Dodaj po prostu kolejnego else if według tej struktury (jeśli znajdzie ten tekst, to do x klasy dodaj klasę active).

dodałem 
Kod PHP:
else if (currentPage.indexOf('Upgrade') != -1)
{
        $('.menu li a.upgrade').addClass('active');
}
else if (
currentPage.indexOf('my_awards') != -1)
{
        $('.menu li a.award_1').addClass('active');

gdzie currentPage.indexOf wstawiłem Template Name z szablonów globalnych.
Nadal nie działa ;/
Co może być nie tak?

klasy award_1 i upgrade mają takie same parametry ja te działające z pozostałych.
To my_awards zamień na awardsi analogicznie. To zawiera po prostu kawałek treści, która jest w tym elemencie.

http://i.imgur.com/JvO8mup.jpg
podmieniłem tak jak pisałeś i błąd nadal występuje :/
Zastanawia mnie tylko dlaczego Upgrade nie mając klasy active zmienia się jakby ją posiadał.
Dodatkowo dziwne jest to, że active przyjmuje home, tak jak w pozostałych.
Masz ogólnie bałagan w kodzie.

Zamiast tego twojego użyj:

else if (currentPage.indexOf('Upgrade') == -1)
{
$('.menu li a.upgrade').addClass('active');
}
i

else if (currentPage.indexOf('awards') == -1)
{
$('.menu li a.award_1').addClass('active');
}

Testuje i z tego co widzę to działa.

Teraz active jest upgrade w Awards i Dollars.
Całość kodu:

Kod PHP:
<script>
jQuery(document).ready(function($) {

if ($(
'#pm_unread').text() != '0') {
 
       $('.pm_anchor').addClass('pm_new');
}

$(
'ul.menu li')
.
mouseenter(function() {
 
       $(this).children('ul').fadeIn(200);
})
.
mouseleave(function() {
 
       $(this).children('ul').fadeOut(200);
});

currentPage = $(document).find(".navigation").text();

if (
currentPage.indexOf('Portal') != -1)
{
 
       $('.menu li a.portal').addClass('active');
}
else if (
currentPage.indexOf('Search') != -1)
{
 
       $('.menu li a.search').addClass('active');
}
else if (
currentPage.indexOf('Member List') != -1)
{
 
       $('.menu li a.memberlist').addClass('active');
}
else if (
currentPage.indexOf('Calendar') != -1)
{
 
       $('.menu li a.calendar').addClass('active');
}
else if (
currentPage.indexOf('Help Documents') != -1)
{
 
       $('.menu li a.help').addClass('active');
}
else if (
currentPage.indexOf('Upgrade') == -1)
{
 
       $('.menu li a.upgrade').addClass('active');
}
else if (
currentPage.indexOf('awards') == -1)
{
 
       $('.menu li a.award_1').addClass('active');
}
else if (
currentPage.indexOf('dollars') == -1)
{
 
       $('.menu li a.doll').addClass('active');
}
else if (
currentPage.indexOf('NonEx') == -1)
{
 
       $('.menu li a.forum').addClass('active');
}

 



 
   if ( $('ul.navigation').height() > 40 )
 
   {
 
       $('ul.navigation li').not(':first, :last').children('a').html('...');
 
   }

$( 
window ).resize(function() {
 
   if ( $('ul.navigation').height() > 40 )
 
   {
 
       $('ul.navigation li').not(':first, :last').children('a').html('...');
 
   }
}); 

Nie mam pojęcia w czym jest błąd.
currentPage.indexOf może nie jest poprawny?

Edit: Nawet stronę główną (home) daje teraz Upgrade jako active :/
Usuń swój cały kod na to i zrób to według tego:


var tabAddress = window.location.pathname;

switch (tabAddress) {
case "/index.php":
$('.menu li .forum').addClass('active');
break;
case "/search.php":
$('.menu li .search').addClass('active');
break;
case "/myawards.php":
$('.menu li .award_1').addClass('active');
break;
}

Dużo prościej i czytelniej.

O dziwo dodaje również klasę active do home i są dwie ;/
Kod PHP:
currentPage = $(document).find(".navigation").text();

if (
currentPage.indexOf('Portal') != -1)
{
 
       $('.menu li a.portal').addClass('active');
}
else if (
currentPage.indexOf('Search') != -1)
{
 
       $('.menu li a.search').addClass('active');
}
else if (
currentPage.indexOf('Member List') != -1)
{
 
       $('.menu li a.memberlist').addClass('active');
}
else if (
currentPage.indexOf('Calendar') != -1)
{
 
       $('.menu li a.calendar').addClass('active');
}
else if (
currentPage.indexOf('Help Documents') != -1)
{
 
       $('.menu li a.help').addClass('active');
}

else if (
currentPage.indexOf('NonEx') == -1)
{
 
       $('.menu li a.forum').addClass('active');
}
var 
tabAddress window.location.pathname;

switch (
tabAddress) {
 case 
"/index.php":
 
  $('.menu li .forum').addClass('active');
 
   break;
 
 case "/search.php":
 
  $('.menu li .search').addClass('active');
 
   break;
 
 case "/myawards.php":
 
  $('.menu li .award_1').addClass('active');
 
   break;
 case 
"/newpoints.php":
 
  $('.menu li .doll').addClass('active');
 
   break;

Stron: 1 2