Генерирование полосы навигации
Генерирование полосы навигации
Теперь можно заняться кодом, генерирующим вложенные списки в полосе навигации.
Снова откроем Web-страницу index.htm в Блокноте, если уже ее закрыли. Удалим весь HTML-код, формирующий пункты вложенных списков в полосе навигации, но оставим фрагмент, создающий сами вложенные списки. Результат приведен в листинге 18.2.
Листинг 18.2
<UL ID="navbar">
<LI><A HREF="chapters/html.htm">HTML</A>
<UL>
</UL>
</LI>
<LI><A HREF="chapters/css.htm">CSS</A>
<UL>
</UL>
</LI>
<LI><A HREF="chapters/samples.htm">Примеры</A>
<UL>
</UL>
</LI>
<LI><A HREF="chapters/about.htm">О разработчиках</A></LI>
</UL>
После этого откроем файл Web-сценария main.js и поместим перед вызовом метода onReady объекта Ext код из листинга 18.3.
Листинг 18.3
function generateInnerList(aDataBase, elInnerList) {
for (var i = 0; i < aDataBase.length; i++) {
var s = "<LI><CODE><A HREF="" + aDataBase[i].url + "">" + aDataBase[i].name + "</A></CODE></LI>"; elInnerList.insertHtml("beforeEnd", s);
}
}
Он объявляет функцию generateInnerList, которая будет создавать пункты одного вложенного списка. Эта функция принимает два обязательных параметра:
— один из формирующих нашу базу данных массивов; на основе этого массива будут созданы пункты указанного вложенного списка;
— вложенный список, в котором будут создаваться эти пункты, в виде экземпляра объекта Element.
Ее код очень прост. Рассмотрим его построчно.
Запускаем цикл со счетчиком, в теле которого будут создаваться пункты списка:
for (var i = 0; i < aDataBase.length; i++) {
Счетчик цикла — переменная i, начальное значение счетчика — 0, конечное значение — размер массива, переданного первым параметром (он берется из свойства length объекта Array; подробнее — в главе 14), приращение — инкремент счетчика. В результате цикл выполнится столько раз, сколько элементов содержит массив, переданный первым параметром.
Формируем строку с HTML-кодом, создающим пункт списка:
var s = "<LI><CODE><A HREF="" + aDataBase[i].url + "">" + aDataBase[i].name + "</A></CODE></LI>";
Название пункта и интернет-адрес файла с фрагментом содержимого берем из соответствующих свойств конфигуратора, являющегося элементом переданного первым параметром массива.
Создаем пункт списка на основе строки, сформированной в предыдущем выражении:
elInnerList.insertHtml("beforeEnd", s);
}
В качестве места, куда будет помещен новый пункт, мы указываем "beforeEnd" — перед закрывающим тегом. В результате новые пункты будут добавляться в конец списка.
На этом выполнение тела цикла завершается. А после того, как цикл закончит работу, завершится выполнение самой функции generateInnerList.
Теперь вставим в самое начало тела функции, передаваемой методу onReady объекта Ext, три выражения:
generateInnerList(aHTML, Ext.get("navbar"). child("> LI: nth(1) UL"));
generateInnerList(aCSS, Ext.get("navbar"). child("> LI: nth(2)UL"));
generateInnerList(aSamples, Ext.get("navbar"). child("> LI: nth(3) UL"));
Мы трижды вызываем функцию generateInnerList, поочередно передавая ей три массива, составляющих базу данных, и три вложенных списка, формирующих полосу навигации.
Три приведенных выражения создадут пункты вложенных списков, формирующих полосу навигации. Следующие выражения привяжут к ним обработчики событий. В результате наша полоса навигации будет работать как прежде, будто она не создается Web-сценарием, а полностью формируется в HTML-коде.
Откроем готовую Web-страницу index.htm, набрав интернет-адрес http://localhost в Web-обозревателе, и убедимся в этом. в
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Создание полосы навигации
Создание полосы навигации Напоследок создадим для наших Web-страниц нормальную полосу навигации. Сейчас она у нас слишком уж простенькая.Еще в главе 6 мы узнали, что полоса навигации может быть горизонтальной или вертикальной, может формироваться в одном абзаце, с помощью
Выделение пункта полосы навигации при наведении на него курсора мыши
Выделение пункта полосы навигации при наведении на него курсора мыши Ну, это мы уже сделали. В листинге 16.3 приведен написанный нами в главе 14 JavaScript-код. Листинг 16.3 var ceLinks = Ext.select("UL[id=navbar] LI"); ceLinks.on("mouseover", function(e, t) { Ext.get(this). addClass("hovered"); }); ceLinks.on("mouseout", function(e, t) { Ext.get(this).
Переход на целевую Web-страницу при щелчке на пункте полосы навигации
Переход на целевую Web-страницу при щелчке на пункте полосы навигации На очереди — реализация перехода на целевую Web-страницу при щелчке на любом месте в пункте полосы навигации, не обязательно точно на гиперссылке.Откроем таблицу стилей main.css и найдем в ней стили
Выделение пункта полосы навигации, соответствующего открытой в данный момент Web-странице
Выделение пункта полосы навигации, соответствующего открытой в данный момент Web-странице Что ж, скрытие и открытие вложенных списков, формирующих полосу навигации, в "содружестве" с библиотекой Ext Core реализуется весьма просто. Но работа над полосой навигации еще не
Создание полосы навигации
Создание полосы навигации Напоследок создадим для наших Web-страниц нормальную полосу навигации. Сейчас она у нас слишком уж простенькая.Еще в главе 6 мы узнали, что полоса навигации может быть горизонтальной или вертикальной, может формироваться в одном абзаце, с помощью
Выделение пункта полосы навигации при наведении на него курсора мыши
Выделение пункта полосы навигации при наведении на него курсора мыши Ну, это мы уже сделали. В листинге 16.3 приведен написанный нами в главе 14 JavaScript-код. Листинг 16.3 var ceLinks = Ext.select("UL[id=navbar] LI"); ceLinks.on("mouseover", function(e, t) { Ext.get(this). addClass("hovered"); }); ceLinks.on("mouseout", function(e, t) { Ext.get(this).
Переход на целевую Web-страницу при щелчке на пункте полосы навигации
Переход на целевую Web-страницу при щелчке на пункте полосы навигации На очереди — реализация перехода на целевую Web-страницу при щелчке на любом месте в пункте полосы навигации, не обязательно точно на гиперссылке.Откроем таблицу стилей main.css и найдем в ней стили
Выделение пункта полосы навигации, соответствующего открытой в данный момент Web-странице
Выделение пункта полосы навигации, соответствующего открытой в данный момент Web-странице Что ж, скрытие и открытие вложенных списков, формирующих полосу навигации, в "содружестве" с библиотекой Ext Core реализуется весьма просто. Но работа над полосой навигации еще не
Генерирование полосы навигации
Генерирование полосы навигации Теперь можно заняться кодом, генерирующим вложенные списки в полосе навигации.Снова откроем Web-страницу index.htm в Блокноте, если уже ее закрыли. Удалим весь HTML-код, формирующий пункты вложенных списков в полосе навигации, но оставим фрагмент,
12.5.3. Генерирование сертификатов
12.5.3. Генерирование сертификатов Сертификат гарантирует безопасное подключение к Web-серверам и (или) удостоверяет личность владельца. Идентификация обеспечивается путем применения личного ключа, известного только пользователю данной системы. Когда пользователь
16.10.3. Генерирование сертификатов
16.10.3. Генерирование сертификатов Сертификат гарантирует безопасное подключение к веб-серверам и/или удостоверяет личность владельца. Идентификация обеспечивается путем применения личного ключа, известного только пользователю данной системы. Когда пользователь
5.28. Генерирование случайных чисел
5.28. Генерирование случайных чисел Если вас устраивают псевдослучайные числа, вам повезло. Именно они предоставляются в большинстве языков, включая и Ruby.Метод rand из модуля Kernel возвращает псевдослучайное число x с плавающей точкой, отвечающее условиям x >= 0.0 и x < 1.0.
Генерирование HTML-содержимого
Генерирование HTML-содержимого Пожалуй, самой известной сферой применения типа HttpResponse является запись содержимого непосредственно в выходной поток HTTP. Метод HttpResponse. Write() позволяет передать HTML-дескрипторы, или вообще любые строковые литералы. Метод HttpResponse.WriteFile() расширяет