2017-07-19 3 views
0
$(document).ready(function() { 
    $('.slash-menu nav').click(function(){ 
     $('.slash-menu nav').addClass('active'); 
    }); 

});addclass nicht erfolgreich implementiert

Nach dem JQuery wird diese → ausgeführt

<nav class="slash-menu"></nav> 

dieses →

<nav class="slash-menu active"></nav> 

werden sollte Aber dies geschieht nicht.

Source of my Learning.

+0

einfachste Weg, um Debug-Selektoren Element nav mit Klasse ist in der Browser-Konsole zu gehen und geben Sie '$ (Selektor) .length' Wenn es Null ist, ist der Selektor falsch. zB '$ ('. slash-menu nav'). Länge 'vs' $ ('. slash-menu'). Länge ' –

Antwort

1
  1. Selektor ist falsch. .slash-menu nav bedeutet Element mit Klasse slash-menu finden Kind nav. basierend auf Auszeichnungs html sollte slash-menu
  2. Nutzung diesem Zusammenhang

$(document).ready(function() { 
 
    $('nav.slash-menu').click(function() { 
 
    $(this).toggleClass('active'); 
 
    }); 
 
});
.active { 
 
    color: red 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<nav class="slash-menu">red</nav> 
 
<nav >not red</nav>

+0

[Link] (https://www.screencast.com/t/JyVX4ftYF) Ich tat wie Sie vorgeschlagen, aber Sill funktioniert nicht. ] – somethingnow

+0

@AdiYogi zeigen eine Demo anstelle eines Bildes – guradio

+0

Ja, natürlich Herr. – somethingnow

2

es ist, weil Ihre Wähler für eine <nav> Element innerhalb .slash-menu suchen - Ziel wie folgt aus:

$('nav.slash-menu').click(function() 
{ 
    $(this).addClass('active') 
}) 
+0

[Link] (https://www.screencast.com/t/JyVX4ftYF) Ich habe wie Sie vorgeschlagen haben, funktioniert aber nicht. ] – somethingnow

+0

@AdiYogi - interessant, es sollte funktionieren. Verwenden Sie .length auf '$ ('nav.slash-menu')', um zu sehen, ob es größer als 0 zurückgeht – ThisGuyHasTwoThumbs

Verwandte Themen