2009-07-22 7 views
0

J'ai une série de lien sur mes pages avec des classes aléatoires a: hover afin qu'ils affichent des couleurs différentes sur la souris.se souvenir de la classe d'un élément pour plus tard

Lorsqu'un lien est cliqué, il est défini sur une classe différente afin qu'il apparaisse en surbrillance ou actif. J'ai besoin de créer un script qui enregistre d'abord la classe du lien cliqué puis, après avoir changé et cliqué sur un nouveau lien, trouve l'élément en surbrillance et le replace dans la classe d'origine avant de changer le nouveau lien.

Quelle est la meilleure façon de stocker la classe du lien jusqu'à ce que le nouveau lien soit appelé.

Quelque chose comme:

Obtenir la classe du lien précédent mis en évidence à partir d'une variable? Définissez le lien précédent sur sa classe d'origine.

Stocke la classe actuelle du nouveau lien. Définissez l'élément en tant que lien mis en surbrillance en cours.

Répondre

0
var old_link = null; 
function store(ele){ 
    old_link = { 
    cn: ele.className, 
    r: ele 
    } 
} 
function restore(){ 
    old_link.r.className = old_link.cn; 
} 
+0

Que faire cn: et r: faire? – ian

+0

'cn' est le nom de la classe avant l'édition. 'r' est une référence à l'élément. Je l'ai juste écrit comme ça afin qu'une seule variable puisse être utilisée pour stocker les deux informations. – scragar

0

Je le ferais légèrement différemment.

Pour tous les liens que vous souhaitez inclure, ils doivent tous avoir la même classe, disons «link-class». Lorsque vous cliquez sur un lien particulier, vous voulez ajouter la classe 'selected' à ce lien, mais vous devez d'abord supprimer la classe 'selected' de tous les liens de la page avec la classe de 'link-class'.

En jquery il ressemblerait

$('a.link-class').click(function() { 
    $('a.link-class').removeClass('selected'); 
    $(this).addClass('selected'); 
}); 
Questions connexes