Предисловие | 9 |
Введение | 11 |
Об авторах | 14 |
Благодарности | 16 |
Об этой книге | 19 |
|
1. Введение в jQuery | 25 |
|
1.1. Почему jQuery? | 26 |
1.2. Ненавязчивый JavaScript | 27 |
1.3. Основы jQuery | 29 |
1.3.1. Обёртка jQuery | 29 |
1.3.2. Вспомогательные функции | 32 |
1.3.3. Обработчик готовности документа | 33 |
1.3.4. Создание элементов DOM | 34 |
1.3.5. Расширение jQuery | 36 |
1.3.6. Сочетание jQuery с другими библиотеками | 37 |
1.4. Итоги | 38 |
|
2. Создание обёрнутого набора элементов | 40 |
|
2.1. Отбор элементов для манипуляции | 40 |
2.1.1. Базовые селекторы CSS | 42 |
2.1.2. Селекторы выбора потомков, контейнеров и атрибутов | 43 |
2.1.3. Выбор элементов по позиции | 48 |
2.1.4. Нестандартные селекторы jQuery | 51 |
2.2. Создание новых элементов HTML | 54 |
2.3. Манипулирование обёрнутым набором элементов | 56 |
2.3.1. Определение размера обёрнутого набора элементов | 57 |
2.3.2. Получение элементов из обёрнутого набора | 58 |
2.3.3. Получение срезов обёрнутого набора элементов | 60 |
2.3.4. Получение обёрнутого набора с учётом взаимоотношений | 67 |
2.3.5. Дополнительные способы использования обёрнутого набора | 68 |
2.3.6. Управление цепочками команд jQuery | 70 |
2.4. Итоги | 71 |
|
3. Вдыхаем жизнь в страницы с помощью jQuery | 73 |
|
3.1. Манипулирование свойствами и атрибутами элементов | 74 |
3.1.1. Манипулирование свойствами элементов | 75 |
3.1.2. Извлечение значений атрибутов | 76 |
3.1.3. Установка значений атрибутов | 78 |
3.1.4. Удаление атрибутов | 80 |
3.1.5. Игры с атрибутами | 81 |
3.2. Изменение стиля отображения элемента | 82 |
3.2.1. Добавление и удаление имён классов | 82 |
3.2.2. Получение и установка стилей | 85 |
3.2.3. Дополнительные команды работы со стилями | 90 |
3.3. Установка содержимого элемента | 92 |
3.3.1. Замена HTML-разметки или текста | 92 |
3.3.2. Перемещение и копирование элементов | 94 |
3.3.3. Обёртывание элементов | 98 |
3.3.4. Удаление элементов | 100 |
3.3.5. Копирование элементов | 101 |
3.4. Обработка значений элементов форм | 102 |
3.5. Итоги | 105 |
|
4. События: где это происходит | 106 |
|
4.1. Модель событий броузера | 108 |
4.1.1. Модель событий D0M уровня 0 | 108 |
4.1.2. Модель событий DOM уровня 2 | 115 |
4.1.3. Модель событий Internet Explorer | 120 |
4.2. Модель событий jQuery | 121 |
4.2.1. Подключение обработчиков событий с помощью jQuery | 122 |
4.2.2. Удаление обработчиков событий | 126 |
4.2.3. Исследование экземпляра Event | 127 |
4.2.4. Воздействие на распространение события | 128 |
4.2.5. Запуск обработчиков событий | 128 |
4.2.6. Прочие команды для работы с событиями | 131 |
4.3. Запуск событий (и не только) в работу | 136 |
4.4. Итоги | 148 |
|
5. Наводим лоск: анимация и эффекты | 150 |
|
5.1. Скрытие и отображение элементов | 150 |
5.1.1. Реализация сворачиваемого списка | 151 |
5.1.2. Переключение состояния отображения элементов | 157 |
5.2. Анимационные эффекты при изменении |
визуального состояния элементов | 158 |
5.2.1. Постепенное отображение и скрытие элементов | 158 |
5.2.2. Плавное растворение и проявление элементов | 164 |
5.2.3. Закатывание и выкатывание элементов | 166 |
5.2.4. Остановка анимационных эффектов | 168 |
5.3. Создание собственных анимационных эффектов | 169 |
5.3.1. Эффект масштабирования | 171 |
5.3.2. Эффект падения | 172 |
5.3.3. Эффект рассеивания | 173 |
5.4. Итоги | 174 |
|
6. Вспомогательные функции jQuery | 177 |
|
6.1. Флаги jQuery | 178 |
6.1.1. Определение типа броузера | 178 |
6.1.2. Определение блочной модели | 184 |
6.1.3. Определение правильного имени для стиля float | 186 |
6.2. Применение других библиотек совместно с jQuery | 187 |
6.3. Управление объектами и коллекциями JavaScript | 191 |
6.3.1. Усечение строк | 191 |
6.3.2. Итерации по свойствам и элементам коллекций | 192 |
6.3.3. Фильтрация массивов | 194 |
6.3.4. Преобразование массивов | 196 |
6.3.5. Другие полезные функции для работы |
с массивами JavaScript | 198 |
6.3.6. Расширение объектов | 200 |
6.4. Динамическая загрузка сценариев | 203 |
6.5. Итоги | 206 |
|
7. Расширение jQuery с помощью собственных модулей | 208 |
|
7.1. Зачем нужны расширения? | 208 |
7.2. Основные правила создания модулей расширения jQuery | 209 |
7.2.1. Именование функций и файлов | 210 |
7.2.2. Остерегайтесь $ | 211 |
7.2.3. Укрощение сложных списков параметров | 212 |
7.3. Создание собственных вспомогательных функций | 215 |
7.3.1. Создание вспомогательной функции |
для манипулирования данными | 216 |
7.3.2. Создание функции форматирования даты | 218 |
7.4. Добавление новых методов обёртки | 222 |
7.4.1. Применение нескольких операций в методах обёртки | 224 |
7.4.2. Сохранение состояния внутри метода обёртки | 228 |
7.5. Итоги | 238 |
|
8. Взаимодействие с сервером по технологии Ajax | 240 |
|
8.1. Знакомство с Ajax | 241 |
8.1.1. Создание экземпляра XHR | 241 |
8.1.2. Инициализация запроса | 243 |
8.1.3. Слежение за ходом выполнения запроса | 244 |
8.1.4. Получение ответа | 245 |
8.2. Загрузка содержимого в элемент | 247 |
8.2.1. Загрузка содержимого с помощью jQuery | 249 |
8.2.2. Загрузка динамических данных | 251 |
8.3. Выполнение запросов GET и POST | 256 |
8.3.1. Получение данных с помощью jQuery | 257 |
8.3.2. Получение данных в формате JSON | 259 |
8.3.3. Выполнение запросов POST | 270 |
8.4. Полное управление запросами Ajax | 271 |
8.4.1. Выполнение запросов Ajax со всеми настройками | 271 |
8.4.2. Настройка запросов, используемых по умолчанию | 274 |
8.4.3. Глобальные функции | 275 |
8.5. Соединяем всё вместе | 280 |
8.5.1. Реализация всплывающей подсказки | 282 |
8.5.2. Применение расширения The Termifier | 284 |
8.5.3. Место для усовершенствований | 287 |
8.6. Итоги | 289 |
|
9. Замечательные, мощные и практичные расширения | 290 |
|
9.1. Form Plugin | 291 |
9.1.1. Получение значений элементов формы | 291 |
9.1.2. Очистка и сброс значений в элементах формы | 296 |
9.1.3. Отправка формы с применением технологии Ajax | 298 |
9.1.4. Выгрузка файлов | 306 |
9.2. Dimensions Plugin | 306 |
9.2.1. Улучшенные методы width и height | 307 |
9.2.2. Определение размеров прокручиваемых областей | 308 |
9.2.3. Смещение и позиция | 311 |
9.3. Live Query Plugin | 314 |
9.3.1. Упреждающая установка обработчиков событий | 314 |
9.3.2. Определение обработчиков событий начала |
и конца периода соответствия | 316 |
9.3.3. Принудительный запуск обработчиков Live Query | 317 |
9.3.4. Удаление обработчиков Live Query | 318 |
9.4. Введение в UI Plugin | 322 |
9.4.1. Взаимодействия с мышью | 323 |
9.4.2. Визуальные компоненты и эффекты | 340 |
9.5. Итоги | 341 |
9.6. Конец? | 342 |
|
A. JavaScript: что вам нужно знать, а может и нет! | 343 |
|
Алфавитный указатель | 362 |