Pull to refresh

Comments 12

UFO just landed and posted this here
Вы правильно советуете вешать событие на конкретный контейнер вместо документа, однако jQuery в последней стабильной версии не поддерживает задание контекста в .live(). Эта возможность появится в версии 1.3.3, а до тех пор я предпочитаю настраивать делегирование вручную. Кроме того, в версии 1.4 собираются реализовать делегирование событий focus, blur, change и submit.
Ой, я может быть непонятно написал. Я имел ввиду создание собственного делегирования без участия live в силу указанной вами причины, что live не принимает вторым аргументом контекстный элемент.
а как насчёт компонент? ;-)
mojura.110mb.com/test/js-component/
По коду:
var klass= arguments.callee — не соответствует strict mode
var latencyClean= this.latencyClean= arg.latencyClean || arg.laency || 100 — тут опечатка, latency

Интересное место, прокомментируйте пожалуйста:
  1. var attachIfLoaded= this.attachIfLoaded= function( el ){
  2.     var cur= el
  3.     do {
  4.       if( el.nextSibling ) return attach( el )
  5.     } while( cur= cur.parentNode )
  6.   }
* This source code was highlighted with Source Code Highlighter.


Цепочка вызовов также интересная.

Вообще, тема не очень освещенная и крайне занятная, могли бы рассказать поподробней. Из недостатков сразу в глаза бросается тот факт, что IE6 например сума сойдет, если будет происходить модификация DOM до его полной загрузки. Т.е. например в колбеке происходит какое-либо преобразование, а событие возникает до построения DOM. Другие браузеры по личному опыту это худо-бедно переваривают, но идеологически это неверно. Получается, что мы ограничиваем себя областью применения такого метода.
> var klass= arguments.callee — не соответствует strict mode
зато позволяет не завязываться на конкретные имена

> тут опечатка, latency
угу, спасибо

> Интересное место, прокомментируйте пожалуйста:
проверяет есть ли после текущего элемента другие элементы. и если есть, то создаёт виджет. иначе — откладывает на потом.
таким образом виджет создаётся только после полной загрузки элемента, что гарантирует, в частности, адэкватное поведение ие6 ;-)

С ростом популярности jQuery инициализация работы всех плагинов по факту загрузки документа стала де-факто парадигмой. $(document).ready пишут все и всегда. Поэтому, здесь я вижу место потенциальных коллизий плагинов. Нужно отслеживать очередность их применения. Но это скорей теоретическая опасная точка.

Правда, напишите топик на эту тему, материал достойный.
Не в тему: в примере приведено выражение delete this.el, this.destroy. Оператор delete не поддерживает несколько «аргументов». В данном случае delete удаляет this.el, запятая выступает в качестве оператора, вся конструкция возвращает метод this.destroy.
хех, я надеялся на лучшее ^_^''
При динамической подгрузке html в div, без live не обойтись. Необходимо пользоваться функцией live, а не click: $('.dynamic_button').live('click', function() {});
$(document).click(function(ev) {if ($(ev.target).filter('a.class').length {… } )}))

проще говоря делегирование
Sign up to leave a comment.

Articles