none
activar y desactivar items del menu con jquery

    Pregunta

  • Hola amigos,

    Estoy intentando hacer en un menu superior, aplicar la clase "active" de acuerdo al "li" que seleccione, y estoy intentando hacerlo por jquery. Logro hacerlo en el evento click, pero el problema es que se aplica la clase, pero al ir a la pagina que apunta ese linck, ya desaparece la clase.Si me pueden dar una idea de como aplicar la calse active al li que corresponde de la pagina que está activa, me ayudarian mucho.

    este es el codigo que utilizo

      $("li").click(function () {  
          $(this).addClass('active');
        });

    Gracias,

    Luispa


    • Editado Luispa miércoles, 26 de septiembre de 2012 16:48
    miércoles, 26 de septiembre de 2012 16:46

Todas las respuestas

  • Hola,

    El problema es que JQuery/JavaScript es programacion del lado del cliente, y al hacer click en el menu se realiza un postback y se recarga la pagina con sus stilos por defecto, por lo tanto no se aplica la clase active, una posible solucion es, si estas usando c#, ejecutar javaScript desde el code-behind:

    http://source-code-development.blogspot.com/2012/06/llamar-codigo-javascript-desde-c-aspnet.html

    Saludos



    Jose Mendez.
    Blog
    Ejemplos de codigos/Code Samples
    If a post answers your question, please click "Mark As Answer" on that post and "Mark as Helpful".
    Si un Post responde a tu pregunta, por favor "Marcala como Respondida" y "Vota como útil".

    domingo, 14 de octubre de 2012 19:31
  • Hola Luispa,

    Como bien te indica José el problema es por las idas y venidas de la página, es decir, los postback.

    Otra opción diferente a la de José sería no ir al servidor si solo quieres activar el objeto... prueba a cancelar el evento e.preventDefault();

    quedaría algo así:

      $("li").click(function (e) {  
          $(this).addClass('active');
          e.preventDefault();
        });

    Esto lanzará la modificacion del DOM  y porsteriormente cancela el evento original:

    Info: http://api.jquery.com/event.preventDefault/

    (NOTA: Esto te sirve siempre y cuando no necesites hacer nada del lado del server)

    Salludos ;-)


    Danicuco - 2012

    lunes, 15 de octubre de 2012 7:15