• Home
  • Forum
  • Fare Web
  • Javascript

[Javascript] Voce del menu evidenziata in base alla pagina attiva

  • Creatore Discussione Creatore Discussione PavlovTheDog
  • Data di inizio Data di inizio 23 Apr 2018
Prec.
  • 1
  • 2
  • 3
Primo Prec. 3 di 3

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
  • 24 Apr 2018
  • #41
marlev ha scritto:
Credo che il richiedente dovrebbe chiarire questo punto perche se usa un editor per inserimento di html e quest ultimo e' identico in piu' pagine, non puo' cambiare la classe di li attiva di conseguenza serve una cosa dinamica...
Clicca per allargare...

Non è del tutto vero.... In basso è riportato esattamente questo caso, anche se duplichi codice a go go su più pagine lo script continua a funzionare, naturalmente deve essere incluso su più pagine.

Mantenendo la logica usata fin d'ora, potresti aggiungere un piccolo script:
Codice:
$(document).ready(function(){
    $('.item').removeClass('attiva');
    var url = window.location.href.split('/').pop();
    var links=$('.nav_item');
    _.each(links,function(v,k){
        var current=$(v).attr('href');
        if(url===current){
            $(v).parent().addClass('attiva');
        }
    });
});
Il tuo html dovrebbe diventare una cosa del genere, aggiungi la classe nav_item al tag a
HTML:
<ul>
    <li class="attiva item"><a href="home.php" class="nav_item" data-name="home" target="_self">Home</a></li>
    <li class="item"><a href="pag1.html" class="nav_item" data-name="pag1" target="_self">pag1</a></li>
    <li class="item"><a href="pag2.html" class="nav_item" data-name="pag2" target="_self">pag2</a></li>
    <li class="item"><a href="pag3.html" class="nav_item" data-name="pag3" target="_self">pag3</a></li>
</ul>
Lascia stare i data-name ho fatto una prova non inerente a questo contesto, e includi la Lib Underscore in tutte le pagine:
Codice:
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.0/underscore-min.js"></script>

Con queste linee di "codice" anche se ricarichi la/e pagina e/o aggiungi pagine a go go, non hai bisogno di scrivere / aggiungere nulla sullo script, in quanto attraverso l'each verifica tutti gli elementi del menu.

Risultato funzionante!
 
P

PavlovTheDog

Nuovo Utente
14 Apr 2018
24
0
1
  • 24 Apr 2018
  • #42
Buongiorno Macus.
Ho provato a cambiare lo script in questo modo, visto che tutti i "li" hanno già la classe "page" e ho sostituito "attiva" con "selected", che è il mio CSS per la pagina attiva:

Codice:
 $(document).ready(function(){
    $('.page').removeClass('selected');
    var url = window.location.href.split('/').pop();
    var links=$('.nav_item');
    _.each(links,function(v,k){
        var current=$(v).attr('href');
        if(url===current){
            $(v).parent().addClass('selected');
        }
    });
});

Pare non funzionare nel mio caso, ma a questo punto, scusandomi per la mia scarsa conoscenza sull'argomento, ho dei dubbi:
1) in che posizione dell'html devo inserire
Codice:
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.0/underscore-min.js"></script>
, va bene anche subito prima della funzione js in questione?

2) qual è il tag corretto per includere la funzione?
3) se ho un'altra funzione js nella pagina, le inserisco nello stesso tag "<script></script>", semplicemente separandole con ";"? O devo mettere tag separati? (ho già provato in entrambi i modi).
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
  • 24 Apr 2018
  • #43
Vedi l'esempio!
 

Allegati

  • test_click.zip
    test_click.zip
    2,6 KB · Visite: 547

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.445
338
83
  • 24 Apr 2018
  • #44
Non posso credere che si debba cercare un improbabile modo in JS e non poter usare il css e basta
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
  • 24 Apr 2018
  • #45
@Max 1 hai ragione, sarebbe stato meglio avere il menu a modi widget, con classe adatta al caso, ma mi pare di aver capito che di classi / funzioni / mvc / ogetti non si parla, quindi non credo sia la strada giusta da perseguire in caso di mancata conoscenza degli strumenti...
Sarebbe utile, magari qui tutti ne parlano ma pochi lo fanno, utilizzare il modello MVC, demandando al controller l'onere di effettuare le opportune verifiche sul menù.
In un caso drastico, avendo replicato il menu a manina su 100 pagine, come ti comporteresti, scrivendo la logica su tutti i file?
Indubbiamente concordo con te, quindi sarebbe da scrivere ex-novo parametrizzando il tutto nel giusto modo...
 
P

PavlovTheDog

Nuovo Utente
14 Apr 2018
24
0
1
  • 24 Apr 2018
  • #46
Max 1 ha scritto:
Non posso credere che si debba cercare un improbabile modo in JS e non poter usare il css e basta
Clicca per allargare...
@Max 1 hai ragione, sarebbe stato meglio avere il menu a modi widget, con classe adatta al caso, ma mi pare di aver capito che di classi / funzioni / mvc / ogetti non si parla, quindi non credo sia la strada giusta da perseguire in caso di mancata conoscenza degli strumenti...
Sarebbe utile, magari qui tutti ne parlano ma pochi lo fanno, utilizzare il modello MVC, demandando al controller l'onere di effettuare le opportune verifiche sul menù.
In un caso drastico, avendo replicato il menu a manina su 100 pagine, come ti comporteresti, scrivendo la logica su tutti i file?
Indubbiamente concordo con te, quindi sarebbe da scrivere ex-novo parametrizzando il tutto nel giusto modo...
Clicca per allargare...
Beh, di fatto nell'editor di aruba già c'è un widget che fa da menu di navigazione (widget.extendednavigation) e in effetti l'html che ho utilizzato è esattamente quello estrapolato, per mezzo della console, dal widget base, perché mi serviva il menu sia in italiano che in inglese, e l'editor non consente di inserirne due, o per lo meno io non so come si possa fare e aruba non da assistenza sviluppo, mentre basekit (proprietario dell'editor), non la fornisce ai clienti aruba .
Purtroppo, il mio html, pur avendo id e classi del tutto simili a quelle del widget.extendednavigation, non assorbe tutte le funzioni js di quel widget (contenute in un file js lunghissimo, di cui non conosco la esatta collocazione, e per me molto complesso), in particolare per la parte responsive e per mettere in evidenza la voce attiva.
Ieri, vedendo che non arrivavamo a una soluzione, ho risolto coi CSS, ma per fare questo ho dovuto creare ben 10 file.twig aggiuntivi per le singole pagine, oltre a quelli della home in italiano e della home in inglese, quindi 12 in totale. Originariamente ne avevo solo 4 (home e default, italiano e inglese) e speravo, con js di potere appunto ridurre la cosa.
 
Ultima modifica: 24 Apr 2018
P

PavlovTheDog

Nuovo Utente
14 Apr 2018
24
0
1
  • 24 Apr 2018
  • #47
Macus, penso di aver seguito bene il tuo esempio, ma non va. Preciso che nel mio caso il menu è nell'head e non nel body.
 
P

PavlovTheDog

Nuovo Utente
14 Apr 2018
24
0
1
  • 24 Apr 2018
  • #48
aggiungo, la console da il messaggio "Caricamento non riuscito per lo <script> con sorgente “https://55b558c7-site-preview.spazioweb.it/t_lib.js”."
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
  • 24 Apr 2018
  • #49
PavlovTheDog ha scritto:
il menu è nell'head
Clicca per allargare...
?????? qualcosa non va....!
 
Prec.
  • 1
  • 2
  • 3
Primo Prec. 3 di 3
Devi accedere o registrarti per poter rispondere.

Discussioni simili

[Javascript] Linkare ogni sigola voce dello stesso menu ad un div diverso della stessa pagina
  • Daniele450
  • 5 Ott 2016
  • Javascript
Risposte
3
Visite
2K
Javascript 11 Ott 2016
Daniele450
M
variabile javascript su link html
  • mizar1966
  • 30 Apr 2024
  • Javascript
Risposte
5
Visite
2K
Javascript 7 Mag 2024
mizar1966
M
I
Creare un banner temporaneo JavaScript
  • IlTizioScriptato
  • 25 Apr 2023
  • Javascript
Risposte
0
Visite
2K
Javascript 25 Apr 2023
IlTizioScriptato
I
S
Impossibile scorrere un oggetto in JavaScript
  • steven myth
  • 23 Set 2022
  • Javascript
Risposte
0
Visite
2K
Javascript 23 Set 2022
steven myth
S
N
Passare array da php a javascript
  • Namaste!
  • 12 Lug 2022
  • PHP
Risposte
5
Visite
3K
PHP 13 Lug 2022
WmbertSea
L
Quiz javascript funzionante da migliorare
  • Lenigmista
  • 24 Feb 2022
  • Javascript
Risposte
0
Visite
3K
Javascript 24 Feb 2022
Lenigmista
L
P
  • Bloccata
errore 404 con javascript
  • psicona
  • 31 Gen 2022
  • Javascript
Risposte
2
Visite
1K
Javascript 31 Gen 2022
Max 1
D
  • Bloccata
aiuto funzioni javascript
  • dedu
  • 9 Gen 2022
  • Javascript
Risposte
1
Visite
1K
Javascript 9 Gen 2022
Max 1
M
Upload immagine con javascript problemi con FormData()
  • MBlackmore
  • 6 Ott 2021
  • Javascript
Risposte
1
Visite
1K
Javascript 6 Ott 2021
MBlackmore
M
L
  • Bloccata
countdown multiplo javascript
  • lillo21
  • 3 Ago 2021
  • Javascript
Risposte
1
Visite
1K
Javascript 3 Ago 2021
Max 1
S
  • Bloccata
Problemi Javascript + Aruba
  • sak89
  • 6 Lug 2021
  • Javascript
Risposte
2
Visite
2K
Javascript 6 Lug 2021
Max 1
M
Inviare un file su un server remoto con JavaScript
  • Mirawara
  • 25 Mag 2021
  • Javascript
Risposte
0
Visite
1K
Javascript 25 Mag 2021
Mirawara
M
T
a href="javascript:;"
  • tore90
  • 17 Mag 2021
  • Javascript
Risposte
1
Visite
2K
Javascript 1 Nov 2021
sonusood2022
S
F
Creare elementi html con javascript
  • Fra_23
  • 7 Mag 2021
  • Javascript
Risposte
3
Visite
3K
Javascript 10 Ago 2021
McLeanerGla
M
A
pulsante di update campo mysql con javascript
  • AndreaCerre
  • 31 Mar 2021
  • Javascript
Risposte
2
Visite
1K
Javascript 31 Mar 2021
AndreaCerre
A
8
Javascript - PDF Form
  • 81bankai
  • 11 Mar 2021
  • Javascript
Risposte
0
Visite
2K
Javascript 11 Mar 2021
81bankai
8
B
javascript per problemi con pdf e Safari
  • bibliofila
  • 7 Gen 2021
  • Javascript
Risposte
0
Visite
3K
Javascript 7 Gen 2021
bibliofila
B
N
informazione javascript
  • Nedved95
  • 2 Dic 2020
  • Programmazione
Risposte
0
Visite
2K
Programmazione 2 Dic 2020
Nedved95
N
I
Eecuzione di javascript in ciclo foreach php.
  • inftecnica
  • 25 Ott 2020
  • PHP
Risposte
7
Visite
2K
PHP 28 Ott 2020
inftecnica
I
P
javascript:document.forms
  • PaoloG
  • 29 Ago 2020
  • Javascript
Risposte
7
Visite
2K
Javascript 3 Set 2020
Max 1
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • Javascript
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?