[quote=M.C.;4541]Андрей, пытаюсь сделать как тут:
http://anton.shevchuk.name/wp-demo/j...ccordion1.html
там справа есть иконка, когда закрыто, она показывает вниз, когда открыто - наверх (это один gif-рисунок, просто он стилями меняет свое положение)
вот как я представил код скрипта:
// Обворачиваем функцию toggle в локальное замыкание:
var toggle = function() {
// Ссылка на текущий открытый div:
var currentDiv = null;
// Ссылка на текущий класс:
var currentClass = null;
// Функция для "раскрытия" элемента:
function open(divElement, classElement) {
// Запоминаем и прячем класс:
currentClass = classElement;
currentClass = document.getElementByClass("bg_headers");
// Тут можно добавить эффект "плавного" открытия:
divElement.style.display = "block";
currentDiv = divElement;
}
// Функция для "закрытия" элемента:
function close(divElement, classElement) {
// Показываем класс и "забываем":
currentClass = document.getElementbyClass("bg_headers_active");
currentAnchor = null;
// Тут можно добавить эффект "плавного" закрытия:
divElement.style.display = "none";
currentDiv = null;
}
// Возвращаем функцию, которая будет вызываться по toggle()
return function(divID, classID) {
// Получаем элемент из DOM
var divElement = document.getElementById(divID);
var classElement = document.getElementByClass(classID)
// Если такой есть:
if (divElement) {
// Если уже открыт этот div, то просто закрываем.
if (divElement === currentDiv) {
close(currentDiv, currentClass);
// Если открыт другой div, то закрываем и открываем текущий:
} else if(currentDiv != null) {
close(currentDiv, currentClass);
open(divElement, classElement);
// Иначе - просто открываем:
} else {
open(divElement, classElement);
}
}
}
// Вызываем нашу "обертку", теперь toggle() вызывает функцию, описанную по "return"
}();
вот что у меня в CSS:
.bg_headers {
background: #e9e7e7 url(../images/icons/arrow-square.gif) no-repeat right -51px;
border: solid 1px #c4c4c4;
padding: 3px;
}
.bg_headers:hover {
background-color: #e3e2e2;
}
.bg_headers_active {
background-position: right 5px;
}
но что-то не работает
[/QUOT]
А вы уверены что есть такой метод - document.getElementByClass("bg_headers"); Даже если есть (у меня правда никогда не работало) то возврашает он коллекцию объектов а значит при обращении надо указывать еще индекс в коллекции document.getElementByClass("bg_headers")[0];