2011-07-11 8 views
1

im en utilisant une installation joomla 1.6.4 et avoir un menu déroulant css/javascript personnalisé dans mon thème. L'élément racine principal du menu (ul) a un identifiant de 'topnav'. Lorsque l'utilisateur clique sur l'un des éléments de menu (li), il passe à la classe pour l'afficher comme sélectionné et affiche une rangée de sous-menus (une durée intégrée). Avant cela, il supprime cette classe de tous les autres éléments li en utilisant une itération. Cela fonctionne très bien lorsque je le teste dans une page html minimale, mais dans Joomla, le menu déroulant ne disparaît jamais, comme si le style n'était pas changé. Ce code est certainement s'appeler lorsqu'un enfant li est cliqué:Joomla javascript classe css ne pas mettre à jour

function SetSelected(id) 
{ 
    var obj = document.getElementById('topnav'); 
    for (var count = 0; count < obj.childNodes.length; count++) 
    { 
     if(obj.childNodes[count].nodeName.toLowerCase() == 'li') 
     { 
      $(obj.childNodes[count]).removeClass('clickedstate'); 
     } 
    } 
    $(id).addClass('clickedstate'); 
    return; 
} 

Selon la méthode de hasClass jQuery (et mon pas à pas par le code), il apparaît comme si la classe est se retire, mais l'élément ne semble pas mettre à jour. Joomla pourrait-il interférer avec cela?

Conduire moi fou! Merci

Répondre

0

pourquoi ne pas vous essayez d'utiliser

$(obj).children().each(function (index) { 
     if ($(this).nodeName.toLowerCase() == 'li') 
     { 
      $(this).removeClass('clickedstate'); 
     } 
    }); 
+0

Merci! J'utilisais en fait mootools ainsi modifié un peu, mais pour une raison quelconque cela fonctionne maintenant! – GracelessROB