СОБЫТИЯ в jQuery
Предисловие
Важно! Представленная здесь информация поможет использовать элементы JavaScript
НАПРЯМУЮ(!) в HTML-коде, даже БЕЗ их форматирования специальными тэгами <script></script>,
либо подключения jQuery, а просто как АТРИБУТ внутри тэга. И кроме того! Я разместил здесь полезную(!) информацию, которая позволит любому желающему довольно хорошо изучить веб-технологию jQuery. смотреть сразу О событияхМожно ли использовать jQuery, БЕЗ прописывания событий? Можно! Только в этом случае пользователь останется "сторонним наблюдателем", и никак не сможет
влиять на происходящее. Чтоб предоставить посетителю возможность самому выполнять какие-либо действия на сайте: что-либо выбирать, заказывать и т.д., нужно прописывать события. * * * Подошёл к отслеживанию событий, т.е. к способам, позволяющим узнать, что делал пользователь на страницах сайта. Движение мыши, любо перемещение по экрану монитора, клик, двойной клик, нажатие на клавишу клавиатуры и т.д., и т.п.. Браузер фиксирует ВСЁ(!), и любое действие пользователя для него - СОБЫТИЕ! И он сразу проверяет: не записаны ли на произошедшие события какие-либо действия, которые нужно выполнить с отображаемой страницей. Далее привожу список только самых(!) основных событий, отслеживаемых браузером компьютера. Вообще их больше. СобытияИх можно разделить на несколько групп. Мышь (mouse)mouseover - "мышь над", т.е., когда навели курсор мыши на что-либо mouseout - "убрали мышь", т.е., курсор мыши убрали с наведённого click - "щелчок", клик мыши dblclick - "двойной щелчок", т.е. двойной клик mousemove - движение курсора мыши по экрану монитора mousedown - кнопка мыши нажата (нажата, но НЕ отпущена ещё) mouseup - кнопку мыши отпустили **Prim. Нижние 2 события (комплексные) есть только в jQuery! Могут принимать в себя (в свои параметры) через , (запятую) 2 функции. ** Пример написания$('moto_table tr').hover(function(){ Конструкция $(this) - означает: текущий элемент, этот, принадлежащий данному объекту, который мы отобрали в первой строке выражения. Функция в параметрах события .hover() нужна ОБЯЗАТЕЛЬНО(!), т.к. "напрямую" в параметрах действия НЕ пишут (не сработает). Клавиатура (key)keypress - нажатие клавиши на клавиатуре; всегда делится на 2 нижних события keydown - событие: нажали клавишу клавиатуры keyup - событие: отпустили клавишу клавиатуры Страница (окно Браузера)load - "загрузка", т.е. это событие происходит, когда браузер загрузит ВСЁ с сервера resize - изменение размеров, ширины окна браузера scroll - "прокрутка", прокрутка, т.е. используя скролл страницы unload - "выгрузка", т.е., когда закрываем страницу, или переходим на новую copy - "копирование", т.е., когда кто-то пытается скопировать страницу Форма (поля, чекбоксы, кнопки и т.д.)focus - "мышь над", т.е., когда навели курсор мыши на что-либо blur - "убрали мышь", т.е., курсор мыши убрали с наведённого change - любое изменение состояния элемента формы reset - СБРОС введённого в поля submit - нажатие кнопки submit, т.е., когда форма отправляется PHP-обработчику Приведённый выше список событий формы имеет ещё фильтры, которые используются для написания скриптов, работающих с формами. Список фильтров и их состояний для формСписок фильтровВспомнить! Формы - это "особое сословие". Вот им и уделяется столько внимания. И фильтры у них есть, и состояния у некоторых фильтров есть ... ... . "Список фильтров", а также "Примеры использования" давал на странице "Выборка", но они могут пригодиться и здесь. ОБЪЕКТ СОБЫТИЯВот, как раз его то браузер и создаёт при каждом нашем "телодвижении", и в него он записывает ВСЮ-ВСЮ информацию о произошедшем событии. Вытащить информацию из этого объекта можно, благодаря наличию свойств у него. Список событийДля БРАУЗЕРА.pageX - клик по оси Х .pageY - клик по оси Y Для МОНИТОРА.screenX - клик по оси Х .screenY - клик по оси Y Для КЛАВИАТУРЫ.altKey - использовалась ли клавиша Alt (вернёт true/false) .ctrlKey - использовалась ли клавиша Ctrl (вернёт true/false) .shiftKey - была ли нажата клавиша Shift (вернёт true/false) КАКОЙ(?) объект отреагировал*.target - КАКОЙ(?) объект отреагировал - это очень важно! ** Пример доступа к объекту события$('#logo').click(function(eventObject){alert('Был клик по ...');}); То есть, присвоить любое название параметру безымянной функции. Вот оно, как раз, и станет тем ОБЪЕКТОМ, куда браузер ВСЁ ЗАПИСЫВАЕТ. Взяв в переменную eventObject.target, можно "вытащить" (узнать) из ответа (он скажет, что это "Объект") обычного JavaScript его реальный id . ** Пример такой записи$('#logo').click(function(eventObject){ Получим реальный id объекта, а дальше ... ... ? С ним уже можно работать ... ... ! СОБЫТИЯ при использовании в HTML и обычном(!) JavaScriptЭтот способ использования считают "устаревшим" ... ... . Однако! НЕ ЗАБЫВАТЬ! В этом случае к событию добавляется приставка on, то есть, если в скрипте jQuery будет правильно click, то там нужно писать onclick Ради примера прописал в коде HTML нижнюю строчку (здесь сокращено) для тэга картинки: Это простейший пример использования элемента JavaScript НАПРЯМУЮ в коде HTML, в качестве атрибута. Более интересные, практические примеры такого прописывания JavaScript, привёл на других страницах сайта. "Кнопки для сайта" - О том, как можно легко и просто сделать кнопку для своего сайта, БЕЗ использования сложных скриптов. "Галерея 3" - Создание простых фотогалерей на сайте, опять таки, БЕЗ использования сложных скриптов. "Галерея на JavaScript" - Галереи, где есть коротенький скрипт, но управляются они с помощью атрибута onclick. "jQuery Галерея 2" - Эту галерею простой уже назвать нельзя, однако в ней есть очень интересный пример использования атрибута rel для ссылок, в котором присутствуют регулировочные значения adjustX и adjustY. ** Впрочем, для обычной галереи, как эта, они ему и НЕ НУЖНЫ, и их можно убрать, а нужен лишь один параметр smallImage, и НЕ ЗАБЫВАТЬ(!) менять идентификаторы у ссылок, иначе все маленькие миниатюры становятся одинаковыми (хотя работают вполне нормально). Проверено! Полезная информацияЗдесь разместил очень полезную(!) информацию для желающих самостоятельно изучать, осваивать и применять технологию jQuery. * * * Справочник jQueryДалее, как и обещал на первой странице своего справочного сайта, даю ссылку, где можно скачать справочник jQuery. Повторюсь. Мне, для работы, вполне хватает собственного, сделанного непосредственно в процессе обучения, но с большим интересом просматривал этот. Разместил архив с ним в соответствующем подразделе страницы "Полезное" (откроется в новом окне). Очень может быть, что Вы найдёте там ещё много интересного для себя. ПослесловиеНадеюсь, сделанный мною справочник по основам технологии jQuery будет Вам так же полезен, как и мне. Функция ожидания формирования DOM-дереваПока DOM-дерево НЕ ПОСТРОЕНО, НЕ ДОЛЖНЫ ПЫТАТЬСЯ использовать скрипт. (Убирал строчку скрипта в конец страницы.) Теперь этого делать не нужно. У jQuery есть конструкция "ожидания" (специальный метод ready), в которой прописано: "Дождаться построения DOM-дерева, а затем уже исполнять ВСЕ скрипты.". $(document).ready(function() { Здесь ВСЁ-ВСЁ-ВСЁ, все скрипты }); Есть сокращённая запись. $(function() { Здесь ВСЁ-ВСЁ-ВСЁ, все скрипты }); **P.S. Лучше не забывать в конце конструкции ставить комментарий //конец ready На странице (в файле скриптов) может быть НЕ ОДИН модуль с такой конструкцией. КОММЕНТАРИИ: /* ... ... ... */ - многострочные // ... ... - однострочные. **Всегда(!) держать в голове схему: Объект - Событие - Действие Не все версии плагинов подходят к, пусть даже самой свежей, версии jQuery! * И последнее. Всегда помнить! * jQuery - клиентский скрипт! Работает только в браузере пользователя. Поэтому никакие его скриптовые "ухищрения" HTML-код НЕ МЕНЯЮТ! * * * Нижняя синяя стрелка вернёт на 3-ью страницу справки, посвящённую теме "Методы в jQuery" (действия). |
Все права защищены. Copyright © 2009 - Коротеев Владимир.