2017-03-13 2 views
0

Ich möchte die class="active" entfernen, wenn ich auf das Element klicken. Ich habe found, dass wir so etwas tun könnten:Entfernen Sie die aktive Klasse, wenn Sie auf klicken

$('#menu li').on('click', function(){ 
     $("#menu").hide(); 
     $("#menu-icon").removeClass("active"); 
    }); 

So mit meiner Struktur:

enter image description here

Ich habe versucht, diesen Code:

$('.nav side-menu li').on('click', function(){ 
     $(".nav side-menu li").removeClass("active"); 
}); 

Aber nichts passiert, was ist Ich mache falsch?

[EDIT] Ich denke, die Probleme aus dem Weg kommen das HTML-Element auszuwählen, und das ist das HTML des Menüs:

<!-- sidebar menu --> 
<div id="sidebar-menu" class="main_menu_side hidden-print main_menu"> 
<div class="menu_section"> 
    <h3>General</h3> 
    <ul class="nav side-menu"> 
    <li><a><i class="fa fa-desktop"></i> Docker machines <span class="fa fa-chevron-down"></span></a> 
    <ul class="nav child_menu"> 
    <li><a class="itemsMenu" href="/">All Docker machines</a></li> 
    </ul> 
    </li> 
    <li><a><i class="fa fa-table"></i> Docker containers <span class="fa fa-chevron-down"></span></a> 
    <ul class="nav child_menu"> 
    <li><a class="itemsMenu" href="/">All containers</a></li> 
    </ul> 
    </li> 
    <li><a><i class="fa fa-bar-chart-o"></i> Data Presentation <span class="fa fa-chevron-down"></span></a> 
    <ul class="nav child_menu"> 
    <li><a class="itemsMenu" href="/dataGraph">Grafana monitoring</a>   </li> 
    </ul> 
    </li> 
</ul> 
</div> 

Ich bin mit Meteor

+0

Vermissen Sie ein '.' vor dem 'side-menu'? – G0dsquad

+0

Versuchen Sie '$ (this) .removeClass (" active ");' –

+0

@ G0dsquad ändert es nichts :( – Jerome

Antwort

1

Ihr Selektor wird nicht wie erwartet funktionieren, Sie müssen sie kombinieren und this verwenden, um auf das angeklickte Element zu verweisen.

$('.nav.side-menu li').on('click', function(){ 
    $(this) 
    .removeClass("active") 
    // get the nested children and hide 
    .find('ul') 
    .hide(); 
}); 
+0

(ich bin nicht der downvoter) passiert nichts mit Ihrer Lösung – Jerome

+0

@Jerome: Überprüfen Sie die aktualisierte –

+0

@Jerome: teilen Sie Ihre HTML-Code –

0
$('.nav.side-menu li').each(function(){ 
    $(this).on('click', function(){ 
    $(this).removeClass('active'); 
    }); 
}); 

$ ('nav.side-Menü li') gibt eine Reihe von Listenelementen. wenn Sie es innerhalb der Klick-Funktion wählen, haben Sie wieder ein Array und es funktioniert nicht

Verwandte Themen