Comments 12
UFO just landed and posted this here
Вы правильно советуете вешать событие на конкретный контейнер вместо документа, однако jQuery в последней стабильной версии не поддерживает задание контекста в .live(). Эта возможность появится в версии 1.3.3, а до тех пор я предпочитаю настраивать делегирование вручную. Кроме того, в версии 1.4 собираются реализовать делегирование событий focus, blur, change и submit.
+1
а как насчёт компонент? ;-)
mojura.110mb.com/test/js-component/
mojura.110mb.com/test/js-component/
0
По коду:
var klass= arguments.callee — не соответствует strict mode
var latencyClean= this.latencyClean= arg.latencyClean || arg.laency || 100 — тут опечатка, latency
Интересное место, прокомментируйте пожалуйста:
Цепочка вызовов также интересная.
Вообще, тема не очень освещенная и крайне занятная, могли бы рассказать поподробней. Из недостатков сразу в глаза бросается тот факт, что IE6 например сума сойдет, если будет происходить модификация DOM до его полной загрузки. Т.е. например в колбеке происходит какое-либо преобразование, а событие возникает до построения DOM. Другие браузеры по личному опыту это худо-бедно переваривают, но идеологически это неверно. Получается, что мы ограничиваем себя областью применения такого метода.
var klass= arguments.callee — не соответствует strict mode
var latencyClean= this.latencyClean= arg.latencyClean || arg.laency || 100 — тут опечатка, latency
Интересное место, прокомментируйте пожалуйста:
- var attachIfLoaded= this.attachIfLoaded= function( el ){
- var cur= el
- do {
- if( el.nextSibling ) return attach( el )
- } while( cur= cur.parentNode )
- }
* This source code was highlighted with Source Code Highlighter.
Цепочка вызовов также интересная.
Вообще, тема не очень освещенная и крайне занятная, могли бы рассказать поподробней. Из недостатков сразу в глаза бросается тот факт, что IE6 например сума сойдет, если будет происходить модификация DOM до его полной загрузки. Т.е. например в колбеке происходит какое-либо преобразование, а событие возникает до построения DOM. Другие браузеры по личному опыту это худо-бедно переваривают, но идеологически это неверно. Получается, что мы ограничиваем себя областью применения такого метода.
0
> var klass= arguments.callee — не соответствует strict mode
зато позволяет не завязываться на конкретные имена
> тут опечатка, latency
угу, спасибо
> Интересное место, прокомментируйте пожалуйста:
проверяет есть ли после текущего элемента другие элементы. и если есть, то создаёт виджет. иначе — откладывает на потом.
таким образом виджет создаётся только после полной загрузки элемента, что гарантирует, в частности, адэкватное поведение ие6 ;-)
зато позволяет не завязываться на конкретные имена
> тут опечатка, latency
угу, спасибо
> Интересное место, прокомментируйте пожалуйста:
проверяет есть ли после текущего элемента другие элементы. и если есть, то создаёт виджет. иначе — откладывает на потом.
таким образом виджет создаётся только после полной загрузки элемента, что гарантирует, в частности, адэкватное поведение ие6 ;-)
+1
С ростом популярности jQuery инициализация работы всех плагинов по факту загрузки документа стала де-факто парадигмой. $(document).ready пишут все и всегда. Поэтому, здесь я вижу место потенциальных коллизий плагинов. Нужно отслеживать очередность их применения. Но это скорей теоретическая опасная точка.
Правда, напишите топик на эту тему, материал достойный.
Правда, напишите топик на эту тему, материал достойный.
0
Не в тему: в примере приведено выражение
delete this.el, this.destroy
. Оператор delete не поддерживает несколько «аргументов». В данном случае delete удаляет this.el, запятая выступает в качестве оператора, вся конструкция возвращает метод this.destroy.0
При динамической подгрузке html в div, без live не обойтись. Необходимо пользоваться функцией live, а не click: $('.dynamic_button').live('click', function() {});
0
Sign up to leave a comment.
jQuery.live в деталях