He agregado una clase active a través de jquery cada vez que el usuario hace clic en los menús de navegación. ¿Cómo agrego otra check de clase cada vez que el usuario hace clic en el menú?
El comportamiento de mis menús sería como menús paso a paso. Por ejemplo, cuando el usuario hace clic en la test 1 , activará el li . Y cuando el usuario haga clic en Test 2 , se activará y el menú anterior será reemplazado por la clase de check .
Como esta imagen de ejemplo de arriba.
Este es mi código jquery. ¿Alguien tiene alguna idea de cómo modificar el código Jquery para realizar lo anterior?
HTML
<nav id="sidebar" class="get-qoute-sidebar"> <ul class="menus"> <li class="active"> <a href="#"><span>Test 1</span></a> </li> <li> <a href="#"></i><span>Test 2</span></a> </li> <li> <a href="#"><span>Test 3</span></a> </li> <li> <a href="#"><span>Test 4</span></a> </li> <li> <a href="#"><span>Test 5</span></a> </li> <li> <a href="#"><span>Test 6</span></a> </li> <li> <a href="#"><span>Test 7</span></a> </li> </ul> </nav>jquery
$(document).ready(function () { //load the functions activeSideBar(); }); function activeSideBar() { // set active classes on side bar nav li a $("body").on("click", 'nav#sidebar.get-qoute-sidebar ul li a', function (e) { $('nav#sidebar.get-qoute-sidebar ul li.active').removeClass('active'); var $parent = $(this).parent(); $parent.addClass('active'); e.preventDefault(); }); }Por favor, pruebe este:
function activeSideBar() { // set active classes on side bar nav li a $("#sidebar .menus li").on("click", function() { $(this).siblings(".active").removeClass("active").addClass("check"); $(this).addClass("active").removeClass("check"); // Remove class of the next sibling when going a step back $(this).next().removeClass("check"); // Remove class of all following siblings when going a few steps back $(this).find("~ .check").removeClass("check"); // When user jumps directly to step5 mark all previous elements as checked $(this).prevAll().addClass("check"); }); }