2009-12-01 4 views
1

Je travaille sur un site avec une navigation de style accordéon assez large (il n'utilise pas l'interface utilisateur accordéon).jQuery Navigation - Aide nécessaire

Il existe quatre sections de sous-menus qui s'ouvrent lorsque vous cliquez dessus. J'ai le lien actif en surbrillance. L'étape restante consiste à garder le sous-menu actif en cours lorsque vous vous trouvez sur une page du sous-menu. Je peux le garder ouvert quand je travaille avec des pages statiques, mais sur ce site la navigation est un fichier inclus et donc j'ai besoin d'aide pour trouver un moyen dynamique de garder ces sections ouvertes.

Voici le code que je utilise:

<script type="text/javascript"> 
$(function(){ 

$('ul#menu3 ul').hide();     
$('ul#menu3 > li > a.drop').click(function(){ 
$(this).parent().children('ul').toggle("slow"); 
    return false; 
    });      
}); 
</script> 

Fondamentalement, ce que j'ai besoin est un moyen d'appliquer une classe au groupe actif afin qu'il montrera. Toute aide serait grandement appréciée.

Merci.

Répondre

0

C'est ce que je fini par utiliser pour résoudre le problème:

$(function(){ 
$('#mainContentTabs').tabs(); 
$('#subContentTabBoxes').tabs(); 
$('.interior #subContent > ul > li > a.drop').click(function(){ 
$(this).parent().children('ul').toggle("slow"); 
    return false; 
}); 

$(window).ready(function() { 
$('li.products ul').show(); 
    $('li.technical ul').show(); 
    $('li.tips ul').show(); 
$('li.quicklinks ul').show(); 
}); 

Merci.

0

je mettrais l'animation du sous-menu en fonction, afin d'appeler le sous-menu, vous utilisez sur votre a href

onclick="showSubMenu('id')" 

Cette fonction gérerait le glissement. Ensuite, une fois cliqué sur une page qui nécessite un sous-menu à apparaître, ajoutez simplement à la fin de votre page un petit

<script>document.ready(function() {showSubMenu('parent-id')});</script> 

Espérons que cela aide.

C

+0

Salut Chris, ça chauffe, mais cela nécessite un codage manuel de chaque page et puisque le pied de page est aussi un fichier inclus, ce sera plus que problématique. – fmz

0

Vous avez probablement besoin d'appliquer la classe dynamique soit comme une variable ou sur l'élément en lui-même. par exemple.

var page = 'ul#menu3'; 

Ensuite, utilisez cette variable pour déclencher l'état initial, par ex.

$('#ul#menu3').show(); 

Cela aurait besoin de courir avant l'autre javascript relatif à la dropdowns

+0

Bonjour Matpol, hélas, # ulmenu3 est actuellement visible. Les sous-couches sont cachées volontairement et je veux seulement qu'elles s'affichent quand on clique dessus ou quand un élément de sous-menu est la page active. Merci. – fmz

+0

alors changez la page var pour être l'élément que vous voulez montrer sur la page car je dis que cela doit être dynamique et va changer selon la page sur laquelle vous êtes. – matpol