Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Метод live() jquery

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Описание: Как он работает
Еугений
Отправлено: 21 Июля, 2012 - 19:05:58
Post Id


Частый гость


Покинул форум
Сообщений всего: 176
Дата рег-ции: Апр. 2011  


Помог: 1 раз(а)




Всем привет. Перехожу с jquery на javascript, и мне стало интересно как работает метод live(), который присоединяет к указаному элементу обработчик, которые будет работать даже в том случае, если тот элемент будет загружен через ajax. Кое-где статью прочитал, но увы, не понял. Хотелось бы узнать, как такое реализовать на javascript
 
 Top
DlTA
Отправлено: 21 Июля, 2012 - 19:06:52
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




Еугений пишет:
Перехожу с jquery на javascript
че вдруг?
 
 Top
Еугений
Отправлено: 21 Июля, 2012 - 19:09:20
Post Id


Частый гость


Покинул форум
Сообщений всего: 176
Дата рег-ции: Апр. 2011  


Помог: 1 раз(а)




DlTA пишет:
Еугений пишет:
Перехожу с jquery на javascript
че вдруг?
ну хотя бы например зачем подключать 100кб библиотеку ради нескольких строчек скрипта
 
 Top
tuareg
Отправлено: 21 Июля, 2012 - 19:28:18
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Еугений пишет:
ну хотя бы например зачем подключать 100кб библиотеку ради нескольких строчек скрипта

Так-то всего 32.9 KB. А по теме он вешает обработчик на document. И отлавливает всплытие события. Кстати вот поэтому его и не рекомендуется использовать.
 
 Top
Еугений
Отправлено: 21 Июля, 2012 - 19:33:30
Post Id


Частый гость


Покинул форум
Сообщений всего: 176
Дата рег-ции: Апр. 2011  


Помог: 1 раз(а)




tuareg пишет:
Еугений пишет:
ну хотя бы например зачем подключать 100кб библиотеку ради нескольких строчек скрипта

Так-то всего 32.9 KB. А по теме он вешает обработчик на document. И отлавливает всплытие события. Кстати вот поэтому его и не рекомендуется использовать.
сжатая jquery 1.7 весит 92 кбУлыбка и можно чуть поподробнее насчет "вешает на document"?

(Отредактировано автором: 21 Июля, 2012 - 19:34:11)

 
 Top
tuareg
Отправлено: 21 Июля, 2012 - 19:45:31
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Может fierbug и лжет, тогда это на его совести он показывает 32.9 с CDN google.(может google ссу...., что-то наделал не знаю)
Еугений пишет:
поподробнее насчет "вешает на document"

Я если честно вообще не знаю как вешаются кросбраузерно события в чистом js Радость (мне никогда это было не интересно.)
А так основа вот [url]http://jsfiddle.net/tuareg/3rsT6/1/​[/url]
Естественно там создается какой-то объект, в котором хранится элемент на который событие повешено и т.д
ИМХО
Еугений пишет:
Перехожу с jquery на javascript,
шкурка выделки не стоит. Лучше дождитесь 1.8 там они обещают модульность

(Отредактировано автором: 21 Июля, 2012 - 19:50:06)

 
 Top
Еугений
Отправлено: 21 Июля, 2012 - 19:50:10
Post Id


Частый гость


Покинул форум
Сообщений всего: 176
Дата рег-ции: Апр. 2011  


Помог: 1 раз(а)




tuareg пишет:
Естественно там создается какой-то объект, в котором хранится элемент на который событие повешено

понятно, спасибо, об этом я как то и подумывал..
 
 Top
tuareg
Отправлено: 21 Июля, 2012 - 19:51:45
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Можно вообще глянуть. Был плагин live.js Посмотрите как он работал.
 
 Top
SAD
Отправлено: 21 Июля, 2012 - 19:55:06
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




32.9 - весит, если пожат gzip
 
 Top
tuareg
Отправлено: 21 Июля, 2012 - 19:56:23
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




SAD пишет:
32.9 - весит, если пожат gzip
Я об этом не подумал. Тогда тем более.
 
 Top
Еугений
Отправлено: 21 Июля, 2012 - 20:03:31
Post Id


Частый гость


Покинул форум
Сообщений всего: 176
Дата рег-ции: Апр. 2011  


Помог: 1 раз(а)




Еугений пишет:
tuareg пишет:
Естественно там создается какой-то объект, в котором хранится элемент на который событие повешено

понятно, спасибо, об этом я как то и подумывал..

Если я, например, в live указал событие click, то это значит при клике на любой элемент в документе будет срабатывать этот обработчик,а выполнятся будет только на том элементе, который указан?

(Отредактировано автором: 21 Июля, 2012 - 20:04:31)

 
 Top
tuareg
Отправлено: 21 Июля, 2012 - 20:20:46
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Еугений Вы не обижайтесь только, но Вы уверены, что Вам это по плечу?
Прочитайте про всплытие события.
Если я правильно понимаю, происходит следующее.
1 Объявляем $('...').live('click',function(){
//....
});
На документ вешается событие click() если его еще нет. В какой-то объект записывается элемент $('...'), событие click() и function().
2 При клике событие всплыло. И идет проверка по e.target . Если они совпали e.target===$(...) вызывается function()
То что я описал, это только я так думаю. Объект скорей всего hash массив
Цитата:
Если я, например, в live указал событие click, то это значит при клике на любой элемент в документе будет срабатывать этот обработчик,а выполнятся будет только на том элементе, который указан?

Да

(Отредактировано автором: 21 Июля, 2012 - 20:21:49)

 
 Top
LIME
Отправлено: 21 Июля, 2012 - 22:01:28
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




сколько бы ни весило грузится только первый раз
потом из кэша браузера
 
 Top
IllusionMH
Отправлено: 21 Июля, 2012 - 22:31:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)





LIME пишет:
сколько бы ни весило грузится только первый раз
потом из кэша браузера

А если jQuery подгружать с googleapis или яндекса, то вполне вероятно, что этот файл уже будет в кэше Улыбка

(Отредактировано автором: 21 Июля, 2012 - 22:32:03)

 
 Top
LIME
Отправлено: 21 Июля, 2012 - 22:34:09
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




нифига
тоже так думал
мало кто грузит оттуда на практике
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB