Urgent menu+css

Bonjour,

Je relance mon problème au niveau de mon menu ( c’est pour un projet tutoré d’école).

J’ai insérer le menu « pde » de spip afin que mon menu soit déroulant.

Mon menu comporte des rubriques à la racine et des articles dans chacune d’entre elles.

Lorsque je clic sur une rubrique j’ai bien mon titre de rubrique qui change de couleur cependant cela ne fonctionne pas avec mes articles (c la mon soucis).

Voici mon code du menu :

<BOUCLE_exclus(RUBRIQUES) {titre_mot = exclusion }{doublons} ></BOUCLE_exclus>

<BOUCLE_menu-racine(RUBRIQUES){racine}{par num titre}{doublons}>

<a href="#URL_RUBRIQUE" [ class="(#EXPOSE)"] >[(#TITRE|supprimer_numero)]

<B_art2>

    <BOUCLE_art2(ARTICLES){par num titre}{id_rubrique}{id_rubrique!=1}{id_rubrique!=4}{id_rubrique!=14}>

  • [(#TITRE|supprimer_numero)]
  • </BOUCLE_art2>

</B_art2>



</BOUCLE_menu-racine>

Le show,hide sert a dérouler mon menu.

Je me pose la question si cela ne proviendrai pas de ma js qui va avec :

pde={

// CSS classes

pdeClass:‹ pde ›,

hideClass:‹ hide ›,

showClass:‹ show ›,

parentClass:‹ parent ›,

currentClass:‹ current ›,

// images added to the parent links

//openImage:‹ http://onlinetools.org/tools/dom-tree-menu-puredom/minus.gif ›,

openImage:’#CHEMIN{brr.gif}’,

closedImage:’#CHEMIN{plus.gif}’,

//closedImage:‹ http://onlinetools.org/tools/dom-tree-menu-puredom/plus.gif ›,

openMessage:‹ close section ›,

closedMessage:‹ open section ›,

// boolean to make the parent link collapse the section or not

linkParent:false,

init:function(){

pde.createClone();

if(!document.getElementById || !document.createTextNode){return;}

var uls=document.getElementsByTagName(‹ ul ›);

for(var i=0;i<uls.length;i++){

var inneruls,parentLI;

if(!pde.cssjs(‹ check ›,uls[i],pde.pdeClass)){continue;}

var inneruls=uls[i].getElementsByTagName(‹ ul ›);

for(var j=0;j<inneruls.length;j++){

parentLI=inneruls[j].parentNode;

if(parentLI.getElementsByTagName(‹ strong ›)[0]){

pde.cssjs(‹ add ›,parentLI,pde.currentClass);

continue;

}

pde.cssjs(‹ add ›,parentLI,pde.parentClass);

parentLI.insertBefore(pde.clone.cloneNode(true),parentLI.firstChild);

pde.cssjs(‹ add ›,inneruls[j],pde.hideClass);

pde.addEvent(parentLI.getElementsByTagName(‹ a ›)[0],‹ click ›,pde.showhide,false);

parentLI.getElementsByTagName(‹ a ›)[0].onclick=function(){return false;} // Safari hack

if(pde.linkParent){

pde.addEvent(parentLI.getElementsByTagName(‹ a ›)[1],‹ click ›,pde.showhide,false);

parentLI.getElementsByTagName(‹ a ›)[1].onclick=function(){return false;} // Safari hack

}

}

}

},

showhide:function(e){

var image,message;

var elm=pde.getTarget(e);

var ul=elm.parentNode.getElementsByTagName(‹ ul ›)[0];

var img=elm.parentNode.getElementsByTagName(‹ img ›)[0];

if(pde.cssjs(‹ check ›,ul,pde.hideClass)){

message=pde.openMessage;

image=pde.openImage;

pde.cssjs(‹ remove ›,elm.parentNode.getElementsByTagName(‹ ul ›)[0],pde.hideClass);

pde.cssjs(‹ add ›,elm.parentNode.getElementsByTagName(‹ ul ›)[0],pde.showClass);

} else {

message=pde.closedMessage;

image=pde.closedImage;

pde.cssjs(‹ remove ›,elm.parentNode.getElementsByTagName(‹ ul ›)[0],pde.showClass);

pde.cssjs(‹ add ›,elm.parentNode.getElementsByTagName(‹ ul ›)[0],pde.hideClass);

}

img.setAttribute(‹ src ›,image);

img.setAttribute(‹ alt ›,message);

img.setAttribute(‹ title ›,message);

pde.cancelClick(e);

},

createClone:function(){

pde.clone=document.createElement(‹ a ›);

pde.clone.setAttribute(‹ href ›,’#’);

pde.clone.appendChild(document.createElement(‹ img ›));

pde.clone.getElementsByTagName(‹ img ›)[0].src=pde.closedImage;

pde.clone.getElementsByTagName(‹ img ›)[0].alt=pde.closedMessage;

pde.clone.getElementsByTagName(‹ img ›)[0].title=pde.closedMessage;

},

/* helper methods */

getTarget:function(e){

var target = window.event ? window.event.srcElement : e ? e.target : null;

if (!target){return false;}

if (target.nodeName.toLowerCase() != ‹ a ›){target = target.parentNode;}

return target;

},

cancelClick:function(e){

if (window.event){

window.event.cancelBubble = true;

window.event.returnValue = false;

return;

}

if (e){

e.stopPropagation();

e.preventDefault();

}

},

addEvent: function(elm, evType, fn, useCapture){

if (elm.addEventListener)

{

elm.addEventListener(evType, fn, useCapture);

return true;

} else if (elm.attachEvent) {

var r = elm.attachEvent(‹ on › + evType, fn);

return r;

} else {

elm[‹ on › + evType] = fn;

}

},

cssjs:function(a,o,c1,c2){

switch (a){

case ‹ swap ›:

o.className=!pde.cssjs(‹ check ›,o,c1)?o.className.replace(c2,c1):o.className.replace(c1,c2);

break;

case ‹ add ›:

if(!pde.cssjs(‹ check ›,o,c1)){o.className+=o.className?’ '+c1:c1;}

break;

case ‹ remove ›:

var rep=o.className.match(’ ‹ +c1)? › '+c1:c1;

o.className=o.className.replace(rep,’’);

break;

case ‹ check ›:

return new RegExp("(^|\s)" + c1 + « (\s|$) »).test(o.className)

break;

}

}

}

pde.addEvent(window, ‹ load ›, pde.init, false);

Merci d’avance

Emilie