Comment définir l'élément de la barre de navigation comme actif lorsque l'utilisateur le sélectionne?
Je suis un nouveau ASP.NET développeur Web Forms et l'utilisation de Twitter Bootstrap avec la Page Maître. J'ai du mal avec réglage de la barre de navigation élément actif lorsque l'utilisateur sélectionne. J'ai créé ma page maître par la suite ce tutoriel sur la façon d'utiliser Twitter Bootstrap avec ASP.NET.
Voici le code de ma page principale:
<%@ Master Language="VB" CodeFile="MasterPage.master.vb" Inherits="MasterPage" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<link href="css/bootstrap.css" rel="stylesheet" type="text/css" />
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<div>
<div class="container">
<div class="row-fluid">
<div class="span12">
<div class="page-header">
<h1>Hello... My First Website with Twitter Bootstrap</h1>
</div>
</div>
</div>
<div class="row-fluid">
<div class="span3">
<ul class="nav nav-list">
<li class="nav-header">Navigation</li>
<li class="active"><a href="Default.aspx">ASP.NET</a></li>
<li><a href="Default2.aspx">Java</a></li>
<li><a href="#">VB.Net</a></li>
<li><a href="#">C#</a></li>
</ul>
</div>
<div class="span9">
<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</div>
</div>
</div>
</form>
</body>
</html>
Ensuite, j'ai ajouté ce script pour la Tête afin de fixer problème avec le menu:
<script type="text/javascript">
$(document).ready(function () {
var url = window.location.pathname;
var substr = url.split('/');
var urlaspx = substr[substr.length - 1];
$('.nav').find('.active').removeClass('active');
$('.nav li a').each(function () {
if (this.href.indexOf(urlaspx) >= 0) {
$(this).parent().addClass('active');
}
});
});
</script>
Cependant, rien n'a été changé. Lorsque j'ai sélectionné un élément dans la barre de navigation, la classe active n'a pas été ajoutée à la nouvelle élément sélectionné et je ne sais pas pourquoi. Pourriez-vous svp m'aider dans la résolution de ce problème.?
source d'informationauteur Android FanBoy
Vous devez vous connecter pour publier un commentaire.
Utiliser ceci:
Exemple: http://jsfiddle.net/yUdZx/3/
Et, dans le "href" utilisation "de la Page.ResolveUrl"
C'est mieux...
Fait Reynaldo, est presque ça...
Au moins pour moi, cela fonctionne plutôt bien, sur activing l'option en cours et deactiving la précédente, basée sur son exemple.
J'ai placé ce dans chacune de mes pages de contenu, la modification de l'id de la valeur liquidative du jour de chaque page (ce qui utilise des sélecteurs JQuery). Donc pour que cela fonctionne pour vous, vous aurez besoin de donner la liste de vos éléments d'un Id. Je n'ajouterai pas "active" de la classe à la page maître, parce que tout ce que nous devons faire est de mettre en évidence le plus approprié lorsque le chargement du contenu.
Remarque: si vous utilisez ASP.NET les contrôles au lieu de la liste des éléments à l'intérieur de votre barre de navigation, ils pourraient recevoir le préfixe lors de l'exécution à l'origine de votre javascript de ne pas trouver l'Id que vous pensez que vous êtes la recherche pour.
code suivant fonctionne si j'ai des sous-pages:
Si vous utilisez de navigation bar avec dropdown-menu ensuite, mettre ci-dessous le script à la fin de votre page principale(avant le corps de la balise de fermeture):
Cela a fonctionné pour moi.
Je sais que ce post est vieux, mais l'utilisation
Puisque vous souhaite également active de tous les parents.
J'ai créé un exemple de ce qui remplir pleinement vos besoins vous avez besoin de modifier le code en fonction de votre besoin.
Utilisez cette jquery sur la page principale