Авторский знак. Seosait21.ru Есть у человека надежда. Пока не поздно. Вгрызайся и изучай.
Нажимай и поддержи.

Пн Вт Ср Чт Пт Сб Вс
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31


Чувашия-это моя Россия

Функции delegate() в jQuery.

В библиотеке jQuery названия функциям подбирают так, что само название действий к выборкам элементов на половину раскрывает суть этой функции. Функции delegate() что-то делегилирует, то есть назначает какими-то полномочиями. На самом деле оно так и есть. Бывают ситуации сплошь и рядом, когда применяем такие функции append(), attr(), html(), before() и много других функций, которые облегчают нам возможности добавлять, изменять, удалять, применять разные стили к выборкам элементов уже после загрузки страницы сайта.

Вот, здесь начинается разногласия относительно событий click(), hover(), mouserover(), mouserout(), mouserup, bind() и много других простых и удобных событий над элементами выборки страницы сайта. Данные обработчики событий над элементами, уже прописанные и находящиеся на страницах не будут обрабатывать события при щелкании, наведении кнопками мыши над элементами добавленными позже на страницы сайта ( то есть после загрузки страницы браузером) такими функциями как append(), attr(), html(), before() и много других.

Получается что функции click(), hover(), mouserover(), mouserout(), mouserup, bind() и много других работают только элементами выборки существовавшими при загрузке страницы. Как заставить выполнять свои функции и над элементами, которые Вы добавляете входе работы? Можно, конечно,подключать обработчики событий после каждого добавления, изменения, удаления, применения стилей. Согласитесь эта процедура весьма трудоемка и медленна.

Чтобы избежать таких разногласий в обработке событий над элементами выборки, включенных до и после загрузки страницы сайта существует функция delegate().

Функции delegate() продолжает работать и с элементами выборки, которые продолжают поступать и появляться на странице сайта.

Общий вид функции delegate():

               $('#container').delegate('selector','event',funtion() {
               //код, функции на событие над элементом выборки
               }); // конец функции delegate()

Общий вид функции delegate() очень странный. Потому что Вы всегда привязывали события, то есть функции над элементами связывали с самими элементами выборки. А здесь события прикрепляем к элементу, который содержит эти элементы выборки.

Например, для того чтобы при щелчке кнопкой мыши click() ко всем элементам списка li в левой колонке div с идентификатором id="tdleft" выполнились какие-то действия над элементами списка требуется составлять следующий код программы:

               $('#tdleft').delegate('li','click',funtion() {
               // описание каких-то действий над элементами списка
               }); // конец функции delegate().

То есть сначала Вы выбираете элемент $('#tdleft'), который содержит элементы списка li в левой колонке страницы. Далее применяете функцию delegate(). Где первым аргументом указываете элементы выборки, вторым аргументом имя события и третьим аргументом выступает функция, которая определяет эти события.

Возьмем второй пример для закрепления. Требуется привязать обработчик события mouserover() ко всем ссылкам a в таблице table. Составляем программу:

                $('table').delegate('a','mouserover',funtion() {
                // тут описание этих действий
                }); // конец функции delegate().

Вот, таким образом, можно привязать ко всем только что добавленным тегам на странице сайта любые действия. Для этого имеется замечательная функции delegate() в jQuery.

Аналогом функции delegate() имеется функция live() в jQuery. Однако, скорость исполнения функция live() намного ниже. Поэтому некоторые программисты не рекомендуют использовать функцию live() в Ваших программах. Хотя, говорят, что у функции live() есть другие скрытые возможности. Что не знаю, то не знаю.


seosait21.ru
HTML

seosait21.ru
CSS

seosait21.ru
Web-диз.
HTML ссылка CSS ссылка ...

seosait21.ru
JavaScript

seosait21.ru
PHP

seosait21.ru
JQuery
JavaScript ссылка PHP ссылка JQuery ссылка

seosait21.ru
SEO.

seosait21.ru
MySQL

seosait21.ru
XML
... ... ...

обратно на главную     назад    дальше     вперед

ПОНРАВИЛОСЬ?
ПОДЕЛИСЬ с ДРУЗЬЯМИ: