En primer lugar, tienes que evitar repetir el
id; ten en cuenta que se trata de un dato único en el documento HTML, y que al momento de registrar un evento en Javascript o un estilo en CSS, de todos los elementos que tengan el mismo identificador, solo se verá afectado el primero de ellos. Por otra parte, en lugar de registrar el evento y función directamente en el elemento, emplea los métodos de jQuery para delegar eventos.
Por ejemplo, podrías agregar tanto el botón como el
<div> en un mismo contenedor:
A diferencia del atributo
id, una
class sí puede repetirse, de tal forma que puedes agregar varios grupos de elementos con las mismas clases:
Ahora, tan solo queda apoyarse en las clases para delegar eventos y funciones:
Código Javascript
:
Ver original$(".group").on("click", ".show", function(){
$(this).next().toggle();
});
Con lo anterior, se registra el evento
click en el elemento de clase
show contenido en el elemento de clase
group, ejecutándose una función en la cual se toma al elemento contiguo (el
<div> de clase
info) al botón pulsado (método
.next()), y se le muestra u oculta (según si el elemento se encuentra visible o no) mediante el método
.toggle().
No olvides registrar el estilo que oculte a los
<div> de clase
info:
DEMO
Procura no registrar eventos y estilos en los mismos elementos HTML sino en archivos JS y CSS.