Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.07.2012, 01:39
Новичок на форуме
Отправить личное сообщение для Atmos Посмотреть профиль Найти все сообщения от Atmos
 
Регистрация: 06.07.2012
Сообщений: 4

Скрипт древовидного списка
Вот этот небольшой скрипт:
<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 тупо прячет пункты, а скрипт не вовлекается в это вовсе.

Подскажите пожалуйста, как подрихтовать скрипт под мой список.
Заранее благодарен.

Последний раз редактировалось Atmos, 06.07.2012 в 02:02.
Ответить с цитированием
  #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 поменять
Ответить с цитированием
  #3 (permalink)  
Старый 06.07.2012, 22:05
Новичок на форуме
Отправить личное сообщение для Atmos Посмотреть профиль Найти все сообщения от Atmos
 
Регистрация: 06.07.2012
Сообщений: 4

Значит, скрипт меняет класс пункта по нажатию, делая его восприимчивым/ невосприимчивым к display: none.
Спасибо за совет, после удаления одного .parentNode всё заработало. Хотя раньше я плюс-минус два .parentNode менял - не работало. Ну да ладно =)
Ещё раз спасибо!
Ответить с цитированием
  #4 (permalink)  
Старый 06.07.2012, 22:17
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Atmos,
Есть на jQuery - если интересно => Проблема с автоскрытием элементов навигации
Ответить с цитированием
  #5 (permalink)  
Старый 07.07.2012, 16:18
Новичок на форуме
Отправить личное сообщение для Atmos Посмотреть профиль Найти все сообщения от Atmos
 
Регистрация: 06.07.2012
Сообщений: 4

Deff,
Спасибо, менюшка покруче, конечно, но мне слишком сложно, да и цель у меня другая - редактирование текста, а не сайтостроение.
Ответить с цитированием
  #6 (permalink)  
Старый 15.07.2012, 12:54
Новичок на форуме
Отправить личное сообщение для Atmos Посмотреть профиль Найти все сообщения от Atmos
 
Регистрация: 06.07.2012
Сообщений: 4

Конечный результат, авось, кому пригодится: http://learn.javascript.ru/play/MyNhu
Ответить с цитированием
  #7 (permalink)  
Старый 15.07.2012, 13:04
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Симпатично
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменить скрипт Изучаю_JS Общие вопросы Javascript 0 12.02.2012 22:05
улучшить скрипт для древовидного меню elenaslobodian Общие вопросы Javascript 8 14.12.2011 19:42
Скрипт составления списка ссылок и их сортировка по алфавиту Друг Работа 13 30.10.2010 16:56
Заполнить список значениями из динамически созданного выпадающего списка zhuzha Элементы интерфейса 0 17.08.2010 14:40
Скрипт по добавлению списка баз данных при входе в систему! Demidovstan Сайт Javascript.ru 3 13.05.2009 17:36