JavaScript - Subrayar un elemento del menu

 
Vista:
Imágen de perfil de Kathyu
Val: 9
Ha disminuido su posición en 86 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Subrayar un elemento del menu

Publicado por Kathyu (4 intervenciones) el 19/06/2020 02:26:05
Hola buenas. Me ayudan con algo que parecía sencillo pero no se me da como quiero.

Tengo el siguiente menu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<nav class="navbar fixed-top navbar-expand-lg">
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsExample08" aria-controls="navbarsExample08" aria-expanded="false" aria-label="Toggle navigation">
        <i class="fa fa-bars menuIcon fa-2x" aria-hidden="true"></i>
    </button>
 
    <div class="collapse navbar-collapse justify-content-md-center" id="navbarsExample08">
    <ul class="navbar-nav">
        <li><a href="../eventos">EVENTOS</a></li>
        <li><a href="../eventos/agencia">AGENCIA</a></li>
        <li><a href="../eventos/servicios">SERVICIOS</a></li>
        <li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</li>
        <li class="navbar-brand">
            <img src="<?php echo $public; ?>/img/logoWhite.png" alt="Logo Eventos by Plan B" width="100">
        </li>
        <li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</li>
        <li><a href="../eventos/influencers">INFLUENCERS</a></li>
        <li><a href="../eventos/contacto">CONTACTO</a></li>
        <li><a href="#">BLOG</a></li>
    </ul>
    </div>
</nav>

Y el siguiente Script
1
2
3
4
5
$('nav ul li a').each(function(){
    if(window.location.href.includes($(this).prop('href'))){
        $(this).css('text-decoration', 'underline');
    }
});

Lo que quiero es simple, que se subraye la opción seleccionada, osea en la que estoy ahorita, y hasta cierto punto lo hace, si doy clic en agencia, servicios o lo que sea se subraya pero nunca deja de subrayar el primer elemento, el de eventos, alguna idea de porque o como quitarlo?

Así se ve ahorita
EVENTOS AGENCIA SERVICIOS INFLUENCERS CONTACTO BLOG

Y lo quisiera así:
EVENTOS AGENCIA SERVICIOS INFLUENCERS CONTACTO BLOG
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Subrayar un elemento del menu

Publicado por joel (895 intervenciones) el 19/06/2020 08:37:33
Hola Kathyu, no veo en ningun momento que lo quites... puedes probar esto:

1
2
3
4
5
6
$('nav ul li a').each(function(){
    $(this).css('text-decoration', 'none');
    if(window.location.href.includes($(this).prop('href'))){
        $(this).css('text-decoration', 'underline');
    }
});
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kathyu
Val: 9
Ha disminuido su posición en 86 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Subrayar un elemento del menu

Publicado por Kathyu (4 intervenciones) el 19/06/2020 09:58:08
Gracias joel pero no funcionó, a parte con su código desaparece mi efecto underline del hover de un link.

Creo que me faltó aclarar algo. Mi menú tiene el efecto underline en cada elemento cuando esta en hover, a lo simple es que se subraya cuando usted pasa el mouse por encima de cualquier link del menú.

Lo que yo quiero es que subraye le opción donde yo di click y donde estoy visitando. Cito el mismo ejemplo.

Así se ve ahorita, estando en la pagina de influencers.
EVENTOS AGENCIA SERVICIOS INFLUENCERS CONTACTO BLOG

Y lo quisiera así:
EVENTOS AGENCIA SERVICIOS INFLUENCERS CONTACTO BLOG

Explico mas, en los ejemplos de arriba yo estoy en la pagina de influencers, y quiero que el menú me lo haga saber poniéndose subrayado, el problemas es que si se subraya el ítem donde estoy pero el elemento EVENTOS, da igual la palabra que tenga, el primer elemento sigue manteniendo el underline

Incluso le quité en el elemento el underline y nada, con css inline.
1
style="text-decoration: none;"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kathyu
Val: 9
Ha disminuido su posición en 86 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Subrayar un elemento del menu

Publicado por Kathyu (4 intervenciones) el 19/06/2020 19:04:20
Tal cual, era quitarle el CSS antes

1
2
3
4
5
6
$('nav ul li a').each(function(){
        if(window.location.href.includes($(this).prop('href'))){
            $('nav ul li a').css('text-decoration', 'none');
            $(this).css('text-decoration', 'underline');
        }
    });
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Subrayar un elemento del menu

Publicado por joel (895 intervenciones) el 19/06/2020 20:12:07
Gracias por comentarlo Kathyu!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kathyu
Val: 9
Ha disminuido su posición en 86 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Subrayar un elemento del menu

Publicado por Kathyu (4 intervenciones) el 20/06/2020 10:58:00
Es lo mejor así todos se enteran.

En su respuesta solo le falto cambiar this por el macro elemento
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar