Otra alternativa de solución:
Código Javascript
:
Ver originalvar divs = document.querySelectorAll(".div_1b_y2b"),
buttons = document.querySelectorAll(".disparador");
Array.prototype.forEach.call(buttons, function(button){
button.addEventListener("click", function(){
Array.prototype.forEach.call(divs, function(div){
var numDiv = div.id.substr(div.id.length - 2, 1),
numBut = button.id.substr(button.id.length - 2, 1),
altura = div.style.height || "0px";
if (numDiv == numBut) div.style.height = altura != "0px" ? "0px" : "100px";
else div.style.height = "0px";
});
}, false);
});
Asigno una clase a los
<div>
en los que se darán los clics, los tomo junto con los
<div>
que se mostrarán/ocultarán y a cada
<div>
que
clickearé, le asigno una función cuando se produzca el evento
click
. Cuando esto suceda, recorro al conjunto de elementos
<div>
a mostrar/ocultar y obtengo el número que se encuentra en su
id
una posición antes del final y lo mismo hago con el
<div>
disparador. Además, obtengo la altura del
<div>
a mostrar/ocultar o le asigno el valor "0px" si es que no se le ha definido dicho valor. Si los números obtenidos de los
id
de los elementos en cuestión son iguales, realizo otra condición; si la altura es distinta a "0px", lo cual quiere decir que ya es visible, le asigno el valor "0px" como altura, ocultándolo, caso contrario, le asigno "100px" de altura, mostrándolo. Si los números son diferentes, le asigno el valor "0px", ocultándolo.
Saludos