J'ai été balayage autour d'essayer de trouver une solution appropriée pour l'attribution de "active/courant de la" classe pour les éléments de menu de la page principale. La ligne est divisé par le milieu en ce qui concerne de savoir si pour ce faire, le client vs côté serveur.
Honnêtement, je suis nouveau sur JavaScript et MVC, donc je n'ai pas une opinion. Je préfère le faire dans le plus "propre" et de la manière la plus appropriée.
J'ai le texte suivant jQuery code pour attribuer le "active" de la classe à l' <li> item...le seul problème est l ' "indice" ou de la vue par défaut de l'élément de menu sera toujours attribuée à la classe active, car l'URL est toujours une sous-chaîne de l'autre les liens de menu:
(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
}
});
Est-il une meilleure façon de le faire, les gars? Quelqu'un aurait au moins m'aider à obtenir le côté client de la version pare-balles? De sorte que l ' "indice" ou le lien par défaut est toujours "actif"? Est-il un moyen de l'attribution d'une fausse extension de la méthode de l'indice? comme au lieu de simplement l'URL de base, il serait localhost/home/dashboard
, de sorte qu'il ne soit pas une sous-chaîne de tous les liens?
Honnêtement, je n'ai pas vraiment suivi les méthodes de le faire côté serveur, c'est pourquoi je suis en train de le faire côté client avec jQuery...toute aide serait appréciée.