Dołącz do zespołu ekspertów! Backend lub Frontend Developer?

Sprawdź najnowsze oferty pracy naszego partnera - 8lines.io!

Dodanie nowej strony do menu

Założony przez  Penny.

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;/
ficus napisał 04.12.2016, 10:26:
Wszelkie zrzuty z ekranu należy dodawać w postaci załącznika. Zabronione jest zamieszczanie grafik / plików umieszczonych na serwerach zewnętrznych.
Wsparcie poza forum - odpłatne.
A w jaki sposób próbujesz nadawać klasę active?
Inne podstrony działają?
Daj szablon podstrony test i index

Zastosuj się do notatki.
"Try not. Do... or do not. There is no try."
Poświęć 5 minut. Nie bądź ignorantem!  -  Jak zbadać element?
@ficus 
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.


Załączone pliki Miniatury
               
Wsparcie poza forum - odpłatne.
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.
"Try not. Do... or do not. There is no try."
Poświęć 5 minut. Nie bądź ignorantem!  -  Jak zbadać element?
@ficus incomebb.net
Obstawiam CSS, albo jakoś nie pobiera klasy active z szablonu, ale wątpię bo reszta działa.
Wsparcie poza forum - odpłatne.
(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 :(
Tanie konta Premium (Netflix, Spotify,HBO i inne) - https://epremki.eu
Wszystko powinno działać poprawnie, spróbuj uruchomić ponownie usługę/restart routera/inna przeglądarka.
Wsparcie poza forum - odpłatne.

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).
Kodowanie, edycja i tworzenie styli, for, stron, poszczególnych elementów - polecane szczególnie dla osób, które nie potrafią sobie poradzić z problemami.
@Divir
dodałem 
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.
Wsparcie poza forum - odpłatne.
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
Kodowanie, edycja i tworzenie styli, for, stron, poszczególnych elementów - polecane szczególnie dla osób, które nie potrafią sobie poradzić z problemami.
@Divir 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.
Wsparcie poza forum - odpłatne.
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.
Kodowanie, edycja i tworzenie styli, for, stron, poszczególnych elementów - polecane szczególnie dla osób, które nie potrafią sobie poradzić z problemami.
@Divir
Teraz active jest upgrade w Awards i Dollars.
Całość kodu:

<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 :/
Wsparcie poza forum - odpłatne.
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.
Kodowanie, edycja i tworzenie styli, for, stron, poszczególnych elementów - polecane szczególnie dla osób, które nie potrafią sobie poradzić z problemami.
@Divir
O dziwo dodaje również klasę active do home i są dwie ;/
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;

Wsparcie poza forum - odpłatne.



Użytkownicy przeglądający ten wątek:

1 gości