Показать сообщение отдельно
  #2 (permalink)  
Старый 06.07.2012, 10:27
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Сообщение от Atmos Посмотреть сообщение
Вот этот небольшой скрипт:
<script type="text/javascript">
    function UnHide( eThis ){
        if( eThis.innerHTML.charCodeAt(0) == 43 ){
            eThis.innerHTML = '−'
            eThis.parentNode.parentNode.parentNode.className = '';
        }else{
            eThis.innerHTML = '+'
            eThis.parentNode.parentNode.parentNode.className = 'cl';
        }
        return false;
    }
</script>

в своем оригинальном примере прекрасно работает. Однако, стоило выкинуть из примера div'ы и увеличить количество уровней, то список потерял функционал - только маркеры свернуто/развернуто меняются, не разворачивая текст. Мой список: http://learn.javascript.ru/play/S3fpab
Если же убрать класс .cl для пунктов списка (http://learn.javascript.ru/play/YbGrdb), то текст наоборот виден, а +/- текст не сворачивает, т.е. display: none для .cl тупо прячет пункты, а скрипт не вовлекается в это вовсе.

Подскажите пожалуйста, как подрихтовать скрипт под мой список.
Заранее благодарен.
div-ы убрал, увеличил кол-во уровней, соответственно количество parentNode нужно увеличить/уменьшить, чтобы они попадали именно на тот элемент, у которого необходимо атрибут class поменять
Ответить с цитированием