2009-08-27 22 views
7

Ich möchte ein Menü erstellen und die Klasse beim Klicken ändern.aktiv li ändern, wenn Sie auf einen Link klicken jquery

Wenn ich auf das "li" ohne class="active" klicke, möchte ich, dass jquery eine Klasse auf das leere <li> hinzufügt und es von der othes "li" entfernt.

<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> 

kann mir jemand helfen? :)

Antwort

19

Ich glaube, Sie dies bedeuten:

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

thx viel! es funktioniert perfekt .. – 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

Dies sollte Ihnen nahe kommen.

$("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'); 
}); 

Der obige Code wird die URL nachschlagen und das letzte Element herausspringen (Welche der Dateiname). Dann findet es das Anker-Tag mit href Attribut, das den gleichen Wert der URL hat, dann setzt es eine aktive Klasse für sein Eltern li Tag

Verwandte Themen