Ich habe herumgesucht und versucht, eine geeignete Lösung für die Zuweisung der Klasse "aktiv/aktuell" zu Menüpunkten von der Masterseite aus zu finden. Die Linie ist in der Mitte in Bezug auf ob diese Client vs Server-Seite zu tun gespalten.
Ehrlich gesagt bin ich neu in JavaScript und MVC, so dass ich nicht eine Meinung haben. Ich würde es vorziehen, dies in der "saubersten" und am besten geeigneten Weg zu tun.
Ich habe den folgenden jQuery-Code, um die "aktive" Klasse zum <li> Element zuzuweisen ... das einzige Problem ist der "Index" oder Standardansicht Menüelement wird immer die aktive Klasse zugewiesen werden, weil die URL immer eine Teilzeichenkette der anderen Menü-Links ist:
(default) index = localhost/
link 1 = localhost/home/link1
link 2 = localhost/home/link1
$(function () {
var str = location.href.toLowerCase();
$('#nav ul li a').each(function() {
if (str.indexOf(this.href.toLowerCase()) > -1) {
$(this).parent().attr("class","active"); //hightlight parent tab
}
});
Gibt es einen besseren Weg, dies zu tun, Leute? Könnte mir jemand helfen, zumindest die clientseitige Version kugelsicher zu machen? So dass der "Index" oder der Standardlink immer "aktiv" ist? Gibt es eine Möglichkeit, der index-Methode eine gefälschte Erweiterung zuzuweisen? z.B. statt der Basis-URL wäre es localhost/home/dashboard
damit es nicht eine Teilzeichenkette für jeden Link ist?
Ehrlich gesagt, ich nicht wirklich folgen die Methoden zu tun, diese Server-Seite, weshalb ich versuche, es Client-Seite mit jQuery zu tun ... jede Hilfe wäre geschätzt.