<script type="text/javascript">
document.body.onclick = function(event) {
var objs = document.getElementsByClassName('block_class');
for (var i; i < objs.length; i++) {
//Если css-свойство display block и кликнули не по ссылке, по которой должен открыться блок, то:
if (objs[i].style.display == "block" && objs[i].attributes['data-block-id'] != event.target.attributes['data-block-id']) {
objs[i].style.display = "none"; //Скрываем элемент
}
}
function showHide(element_id) {
//Если элемент с id-шником element_id существует
if (document.getElementById(element_id)) {
//Записываем ссылку на элемент в переменную obj
var obj = document.getElementById(element_id);
//Если css-свойство display не block, то:
if (obj.style.display != "block") {
obj.style.display = "block"; //Показываем элемент
}
else obj.style.display = "none"; //Скрываем элемент
}
//Если элемент с id-шником element_id не найден, то выводим сообщение
else alert("Элемент с id: " + element_id + " не найден!");
}
ссылка теперь в таком формате
<a href="javascript:void(0)" onclick="showHide('block_id')" data-block-id="block_id">Open_block</a></li>
Аттрибут data-block-id так и пишется, на конкретный id не заменяется. Все скрываемые блоки должны иметь общий класс block_class