WebSite X5Help Center

 
Stiac Engineering
Stiac Engineering
User

Aggiungere Attributo a tag A al click  it

Autor: Stiac Engineering
Visitado 1336, Followers 2, Compartido 0  

Salve ragazzi, stavo provando a strutturare una bozza di menu senza dover costruire e inserire in ogni singola pagina l'HTML dello stesso.

Se avete del tempo da dedicarmi vorrei chiedere un vostro aiuto, al buon Claudio e KolAsim.

Il problema? Inserire al click aria-current="page" all'interno di un tag <a>.

Sono riuscito a inserire la classe per aprire i chiudere i menu, ma ho qualche difficoltà con l'inserimento dell'attributo.

Ho preso spunto da questo articolo https://www.w3schools.com/howto/howto_js_active_element.asp

Questo è l'URL di test https://www.stiac.it/sws/dashboard.php

Se si preme sulla voce del menu "Users" si può vedere che "All Users" ha applicato l'attributo.

Qualche consiglio?

Publicado en
9 RESPUESTAS
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator
Usuario del mes FRUsuario del mes PL

<a id="K1" href="pagina_1.html" > pagina 1 </a>
<br><br>
<a id="K2" href="javascript:attrK()" > pulsante </a>

<script>
function attrK() {$("#K1").attr("aria-current","page")}
</script>

................................

... K1 diventerà: <a id="K1" href="pagina_1.html" aria-current="page" > pagina 1 </a>

.

Leer más
Publicado en de  ‪ KolAsim ‪ ‪
Stiac Engineering
Stiac Engineering
User
Autor

Buonasera KolAsim! Grazie per il prezioso spunto.

Ho provato ma non funziona. Almeno da offline mi apre la finestra in una pagina esterna, mentre l'href ha come target l'iframe:

Sempre online sono riuscito a reperire un secondo spunto https://codepen.io/stiac/pen/MWXJRaO che riesce a inserire la classe. Ora stavo provando a usare il JS presente per inserire il codice in JS jQuery.

Una volta aggiunto ad esempio:

$('.nav__link').attr('aria-current', 'page')

non riesco a eliminarlo.

Qualche consiglio?

Leer más
Publicado en de Stiac Engineering
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator
Usuario del mes FRUsuario del mes PL

.. forse non ho capito, e non ho capito cosa vorresti fare e come, ma,   aria-current="page"    non è un classe, che è altra cosa...

... viceversa, questa sarebbe una classe:  class="NomeClasse"

.

Leer más
Publicado en de  ‪ KolAsim ‪ ‪
Stiac Engineering
Stiac Engineering
User
Autor

Quello che vorrei fare è inserire dinamicamente l'attributo aria-current="page"all'elemento selezionato, così come viene inserita e rimossa la classe corrente.

Quando selezionato inserirlo:

<a class="nav__link active" aria-current="page" href="#">Pagina</a>

Click su altro elemento che non è la classe nav__link impostarlo normale:

<a class="nav__link" href="#">Pagina</a>

Leer más
Publicado en de Stiac Engineering
Stiac Engineering
Stiac Engineering
User
Autor

Risolto, modificando così:

elems.forEach( elem => { elem.classList.remove('active'); elem.removeAttribute('aria-current') }); evt.target.classList.add('active'); evt.target.setAttribute('aria-current', 'page');

Leer más
Publicado en de Stiac Engineering
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator
Usuario del mes FRUsuario del mes PL

... il mio codice assolveva alla domanda, per come avevo indicato nel risultato e per come si vede nel tuo STAMP...

... per il resto, sai tu cosa vuoi ottenere, e meglio così che ne hai trovato la strada...

ciao

.

Leer más
Publicado en de  ‪ KolAsim ‪ ‪
Stiac Engineering
Stiac Engineering
User
Autor

Buongiorno KolAsim,

come sempre ti ringrazio per il prezioso tempo dedicato. Tu e molti altri di questa community siete i "padri" della mia passione per i codici extra.

Ho messo un esempio del tuo codice direttamente online (https://codepen.io/stiac/pen/OJEpXQY), ma anche lì non riesco a farlo funzionare.

Posto una nuova pagina di test, così posso lavorare sulla prima.

Link: https://www.stiac.it/sws/sample.php

A me serviva il modo per inserire l'attributo aria-current="page" alla voce cliccata,  e rimuoverlo allo stesso tempo dalle altre voci non attinenti alla pagina corrente, senza agire sull'href.

L'attributo fa da controllo sul CSS. Se apri il link, puoi vedere che l'attributo è inizialmente presente sulla voce All User perché inserito già di default:

Quando premi l'altra voce, come ad esempio Add New, lo script rimuove lo stesso dalla voce precedente e lo inserisce in quella cliccata:

Come risultato finale ottengo un menu che mi evidenzia le voci cliccate, ma senza dover modificare in ogni singola pagina l'HTML, così da poter meglio ottimizzare la struttura di navigazione. 

Leer más
Publicado en de Stiac Engineering
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator
Usuario del mes FRUsuario del mes PL

... te lo avevo detto per un altro codice che avevi postato in passato su codepen; ...l'esempio non può funzionare perché manca la libreria jQuery, ed invece funziona nel programma che ne è provvisto, come da tuo precedente STAMP...

.

Leer más
Publicado en de  ‪ KolAsim ‪ ‪
Stiac Engineering
Stiac Engineering
User
Autor

Oh me ne sono completamente dimenticato, scusa.

Leer más
Publicado en de Stiac Engineering