2009-08-27 29 views
7

Quiero hacer un menú y cambiar la clase al hacer clic.cambiar li activo al hacer clic en un enlace jquery

Cuando hago clic en "li" sin class="active", quiero que jquery agregue una clase en el <li> vacío y lo elimine de los otros "li".

<li class="active"><a href="javascript:;" onclick="$.data.load(1);">data</a></li> 
<li><a href="javascript:;" onclick="$.data.load(2);">data 2</a></li> 

¿Alguien me puede ayudar? :)

Respuesta

19

creo que quiere decir esto:

$('li > a').click(function() { 
    $('li').removeClass(); 
    $(this).parent().addClass('active'); 
}); 
+0

thx much! funciona perfecto ... – william

12
// When we click on the LI 
$("li").click(function(){ 
    // If this isn't already active 
    if (!$(this).hasClass("active")) { 
    // Remove the class from anything that is active 
    $("li.active").removeClass("active"); 
    // And make this active 
    $(this).addClass("active"); 
    } 
}); 
0

Esto le acerque.

$("li").click(function() { 
    $("li").removeClass("active"); 
    $(this).addClass("active"); 
}); 
2
$('li').click(function() 
{ 
    $('li', $(this).parent()).removeClass('active'); 
    $(this).addClass('active'); 
} 
2
$(window).load(function(){ 
    page=window.location.pathname.split("/").pop(); 
    menuChildren = $('a[href="' + page + '"]'); 
    $(menuChildren).parent('li').addClass('active'); 
}); 

El código anterior buscará la URL y que salga el último elemento (que es el nombre del archivo). Luego encuentra la etiqueta de anclaje con el atributo href que tiene el mismo valor de la url y luego pone una clase activa para su etiqueta principal li

Cuestiones relacionadas