Tengo varias galerías de fotos en la misma página, tienen pocas fotos cada una de ellas y lo que quiero es que al pinchar en un enlace de cualquiera de las galerías, me ponga ese enlace como active y lo quite del enlace anterior y lo mantenga active hasta que pinche en otro enlace, pero sólo tiene que afectar a esa galería y no a las otras.
Tengo esta función, pero el problema es que actúa sobre todos los enlaces de la página, incluyendo las otras galerías y otros enlaces que nada tiene que ver con las fotos, así que no me vale.
Código Javascript :
var a = document.getElementsByTagName("a"), //y si le pongo var a = document.getElementById('galeria').getElementsByTagName("a"), para que me coja sólo los enlaces de galeria no hace nada, no funciona forEach = Array.prototype.forEach; window.addEventListener("click", function(e){ forEach.call(li, function(a){ a.className = a === e.target ? "active" : ""; }); }, false);
Código CSS :
ul.imgLista li a.active { background: red; }
Código HTML :
<div id="galeria_1"> <span class="imgDescripcion" id='titulo_1'>Galería de imágenes</span> <ul class="imgLista"> <li><a class="active" onClick="return showPic(this,'galeria_1','titulo_1')" href="images\1_castillo.jpg" title="Esta es la primera imagen">1</a> </li> <li><a onClick="return showPic(this,'galeria_1','titulo_1')" href="images\2_castillo.jpg" title="Esta es la segunda imagen">2</a> </li> </ul> <img class="imgContenedor" id="galeria_1" src="images\1_castillo.jpg" /> </div> <div id="galeria_2"> <span class="imgDescripcion" id='titulo_2'>Galería de imágenes </span> <ul class="imgLista"> <li><a class="active" onClick="return showPic(this,'galeria_2','titulo_2')" href="images\1_palacio.jpg" title="Esta es la primera imagen">1</a> </li> <li><a onClick="return showPic(this,'galeria_2','titulo_2')" href="images\2_palacio.jpg" title="Esta es la segunda imagen">2</a> </li> </ul> <img class="imgContenedor" id="galeria_2" src="images\1_palacio.jpg" /> </div>