Submitted by guim on
Bonjour à Tous,
pour des impératifs d’accessibilités,
j'ai besoin de lier mes menus par un lien,
par exemple,
le dernier onglet de mon menu 1 conduirait au premier onglet de mon menu 2.
je pensais que le module menu attributes permettait cette utilisation, mais il me semble que ça n'est pas le cas.
Auriez vous une idée ?
Merci
ma recherche avance un
Permalien Soumis par guim le 2 Janvier, 2012 - 15:31
ma recherche avance un peu...
en html + javascript,
il suffit d'utiliser les lignes de code suivantes (merci pOulpe) :
Le Javascript :
var lienCible = document.getElementById('accueil'),
lienOrigine = document.getElementById('acces_menu');
function addEvent(element, event, func) {
if (element.addEventListener) {
element.addEventListener(event, func, false);
} else {
element.attachEvent('on' + event, func);
}
}
addEvent(lienOrigine, 'click', function() {
lienCible.focus();
return false;
});
Le HTML :
<a href="#" id="acces_menu">accès menu</a>
<ul>
<li><a href="http://alsacreations.com" id="accueil">Accueil</a></li>
<li><a href="mon_lien.fr">Accueil</a></li>
</ul>
Le CSS :
a:focus {background: green;}
Sur drupal,
je me rends sur page.tpl.php pour y intégrer le Javascript (dans une balise bien entendu)
à l'aide du module "menu attributes", je glisse l'id "accueil" dans mon onglet en question.
j'édite un bloc en full html en glissant la ligne
<a href="#" id="acces_menu">accès menu</a>
verdict... ça ne fonctionne pas
pourtant, à l'aide de firebug, je retrouve bien le script dans la balise head, je retrouve bien les id au bon endroit...
auriez-vous une piste ??
voici la solution : dans mon
Permalien Soumis par guim le 2 Janvier, 2012 - 16:24
voici la solution :
dans mon exemple,
les menus sont déposés dans le "header region" à l'aide des blocs.
en fait, le javascript ne doit pas être déposé dans le head du fichier page.tpl.php mais il suffit de déposer le javascript sous l'appel du header :
<?php print $header; ?>
Ce qui donne (j'ai modifié les id à ma guise) :
<div id="header">
<?php print $header; ?>
<script type="text/javascript">
var lienCible = document.getElementById('cibleAncre'),
lienOrigine = document.getElementById('origineAncre');
function addEvent(element, event, func) {
if (element.addEventListener) {
element.addEventListener(event, func, false);
} else {
element.attachEvent('on' + event, func);
}
}
addEvent(lienOrigine, 'click', function() {
lienCible.focus();
return false;
});
</script>
</div>
en espérant que ça aide !