Скрытие и открытие вложенных списков
Скрытие и открытие вложенных списков
Вложенные списки в полосе навигации чрезвычайно громоздки. Как бы сделать так, чтобы все они были скрыты и появлялись только при щелчке на пункте "внешнего" списка, в который они вложены?
Легко!
— Изначально все вложенные списки у нас будут скрыты.
— При открытии Web-страницы, содержащей один из разделов Web-сайта ("HTML", "CSS" или "Примеры"), будет открываться тот вложенный список, что вложен в соответствующий пункт "внешнего" списка.
— При открытии Web-страницы, описывающей тег, атрибут стиля или пример, будет открываться вложенный список, содержащий указывающий на эту Web- страницу пункт.
— В данный момент может быть открыт только один вложенный список — остальные будут скрыты.
— Для скрытия и раскрытия вложенного списка мы будем менять у него значение атрибута стиля display (см. главу 9) с помощью методов объекта Element, управляющих видимостью элемента Web-страницы.
Откроем файл Web-сценария main.js и запишем где-либо в его начале, еще до вызова метода onReady объекта Ext, объявление функции, приведенное в листинге 16.6.
Листинг 16.6
function showInnerList(iIndex) {
var elNavbar = Ext.get("navbar");
var ceInnerLists = elNavbar.select("UL");
ceInnerLists.setDisplayed(false);
if (iIndex) {
var sSelector = "UL: nth(" + iIndex + ")";
elNavbar.child(sSelector). setDisplayed(true);
}
}
Данная функция с именем showInnerList будет скрывать все вложенные списки и открывать только тот из них, порядковый номер которого передан ей в качестве единственного параметра. Если параметр опущен, но никакой вложенный список открыт не будет.
Рассмотрим код этой функции построчно.
Сначала получаем "внешний" список, формирующий полосу навигации:
var elNavbar = Ext.get("navbar");
Затем получаем все вложенные в него списки:
var ceInnerLists = elNavbar.select("UL");
Далее скрываем все вложенные списки, для чего используем метод setDisplayed — так проще:
ceInnerLists.setDisplayed(false);
Проверяем, был ли функции showInnerList передан параметр:
if (iIndex) {
Если он был передан, переменная iIndex будет содержать число, которое преобразуется в значение true, и условие выполнится. В противном случае переменная iIndex получит значение null, которое будет преобразовано в false, и условие не выполнится.
Если параметр функции showInnerList был передан, выполняется следующий код. Формируем строку с селектором CSS, который будет выбирать вложенный список, чей порядковый номер был передан с параметром:
var sSelector = "UL: nth(" + iIndex + ")";
Выбираем вложенный список с заданным номером и открываем его:
elNavbar.child(sSelector). setDisplayed(true);
}
На этом выполнение функции showInnerList завершится.
Теперь вставим в конец тела функции, которая передается в качестве параметра методу onReady объекта Ext, такое выражение:
showInnerList(outerIndex);
Здесь мы вызываем функцию showInnerList, передавая ей в качестве параметра значение переменной outerIndex. Эта переменная будет хранить номер вложенного списка, который требуется открыть.
Теперь откроем Web-страницу index.htm и в секцию ее заголовка (в теге <HEAD>) вставим такой код:
<SCRIPT>
outerIndex = 1;
</SCRIPT>
Мы присваиваем переменной outerIndex число 1 — номер вложенного списка, который должен быть открыт при открытии Web-страницы index.htm (это список раздела "HTML"). Когда будут выполняться Web-сценарии, хранящиеся в файле main.js, в том числе и вызов функции showInnerList, значение этой переменной будет передано данной функции в качестве параметра.
Здесь мы немного нарушили требования концепции Web 2.0, предписывающие хранить поведение Web-страницы отдельно от ее содержимого. Но в данном случае это оправдано, т. к. этот Web-сценарий у разных Web-страниц нашего Web-сайта будет различаться, и создавать ради него для каждой Web-страницы "персональный" файл Web-сценария слишком расточительно.
Такой же Web-сценарий мы вставим в секцию заголовка Web-страниц, описывающих теги HTML. И не забываем сохранять исправленные Web-страницы.
В секцию заголовка Web-страницы css_index.htm и Web-страниц, описывающих атрибуты стиля CSS, мы вставим аналогичный код:
<SCRIPT>
outerIndex = 2;
</SCRIPT>
Он укажет, что при открытии данных Web-страниц должен быть открыт второй по счету вложенный список — раздела "CSS".
В секцию заголовка Web-страницы samples_index.htm и Web-страниц, содержащих примеры, мы вставим код… сами догадайтесь, какой. (Подсказка: он должен раскрыть третий вложенный список.)
А вот в секцию заголовка Web-страницы about.htm вставим такой код:
<SCRIPT>
outerIndex = null;
</SCRIPT>
Поскольку четвертый пункт "внешнего" списка не содержит вложенного списка, открывать там ничего не нужно — следует только скрыть уже открытые вложенные списки.
Сохраним все исправленные Web-страницы и опробуем их в деле. Неплохо получилось, правда?
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Создание вложенных списков
Создание вложенных списков Возможностей простых списков часто не хватает. Например, при создании оглавлений не обойтись без вложенных пунктов. Поэтому рассмотрим создание вложенных списков.В HTML можно комбинировать и вкладывать друг в друга списки разных типов, но при
3.10. Создание вложенных таблиц
3.10. Создание вложенных таблиц Существуют такие моменты, когда необходимо создать ячейки, границы которых не должны совпадать (рис. 3.14). Здесь атрибут colspan бессилен. Рис. 3.14. Сложная HTML-таблицаКоманды, управляющие созданием и отображением таблиц, допускают вложение одного
Скрытие и открытие текста примеров
Скрытие и открытие текста примеров На Web-страницах, описывающих теги HTML и атрибуты стиля CSS, мы поместили текст примеров применения того или иного тега или атрибута стиля. Часто его делают скрывающимся и открывающимся в ответ на щелчок мышью — так можно сделать Web-страницы
Скрытие и открытие вложенных списков
Скрытие и открытие вложенных списков Вложенные списки в полосе навигации чрезвычайно громоздки. Как бы сделать так, чтобы все они были скрыты и появлялись только при щелчке на пункте "внешнего" списка, в который они вложены?Легко!— Изначально все вложенные списки у нас
Скрытие и открытие текста примеров
Скрытие и открытие текста примеров На Web-страницах, описывающих теги HTML и атрибуты стиля CSS, мы поместили текст примеров применения того или иного тега или атрибута стиля. Часто его делают скрывающимся и открывающимся в ответ на щелчок мышью — так можно сделать Web-страницы
Скрытие объектов
Скрытие объектов Чтобы облегчить управление сложными сценами, используют скрытие объектов. Это ускоряет отрисовку объектов в окнах проекций, в результате чего возрастает скорость работы. Скрытые объекты невидимы, и их нельзя выделить.Скрыть объекты можно несколькими
Несколько слов о вложенных делегатах
Несколько слов о вложенных делегатах Завершим эту главу рассмотрением еще одного аспекта обобщенных делегатов. Вы знаете, что делегаты могут быть вложены в тип класса, что должно означать тесную ассоциацию между этими двумя ссылочными типами. Если тип-контейнер при этом
Список вложенных элементов управления
Список вложенных элементов управления Первой из рассматриваемых здесь Особенностей System.Web.UI.Control является то, что все Web-элементы управления (это также относится и к Page) наследуют коллекцию пользовательских элементов управления (доступную с помощью свойства Controls). Во
Скрытие строк и столбцов
Скрытие строк и столбцов При работе с таблицей Excel нередко используют множество ячеек, содержащих, например, формулы, какие-либо константы, редко изменяемые данные, которые участвуют в подсчетах различных итогов, но не должны отображаться на экране или в распечатанном
Пример 24-3. Комбинирование "ИЛИ-списков" и "И-списков"
Пример 24-3. Комбинирование "ИЛИ-списков" и "И-списков" #!/bin/bash# delete.sh, утилита удаления файлов.# Порядок использования: delete имя_файлаE_BADARGS=65if [ -z "$1" ]then echo "Порядок использования: `basename $0` имя_файла" exit $E_BADARGS # Если не задано имя файла.else file=$1 # Запомнить имя файла.fi[ ! -f "$file" ]
Скрытие вкладок
Скрытие вкладок Например, при необходимости можно удалить вкладку Сеть. Для этого в разделе HKEY_CURRENT_USERSoftwarePoliciesMicrosoftWindowsMediaPlayer необходимо создать REG_DWORD-параметр HideNetworkTab и присвоить ему значение 1. Ниже приведен текст соответствующего REG-файла (расположение на компакт-диске
Скрытие информации
Скрытие информации Правило Скрытия Информации можно сформулировать следующим образом: Разработчик каждого модуля должен выбрать некоторое подмножество свойств модуля в качестве официальной информации о модуле, доступной авторам клиентских модулей.Применение этого
Скрытие потомком
Скрытие потомком Прежде чем искать решение проблемы ковариантности, рассмотрим еще один механизм, способный в условиях полиморфизма привести к нарушениям типа. Скрытие потомком (descendant hiding) - это способность класса не экспортировать компонент, полученный от
Просмотр и сохранение вложенных файлов
Просмотр и сохранение вложенных файлов Если в письме имеются вложенные файлы, то в списке сообщений оно будет отмечено значком скрепки. В области просмотра также появится скрепка, щелчок кнопкой мыши на которой открывает список вложенных файлов. Присоединенные файлы