Да блин, кажыдй топик, где есть фотка АБСОЛЮТНО любой молодой девушки сразу вызывает цепочку комментариев типа «а мне бы такую жену». Не понимаю, толи программисты на самом деле смеются над программисткими шутками, толи все они реально помешанные люди =)
P.S.Какуша это вообще грязный скейтер из москвы, тащемта )
нет, просто видя фотку симпатичной девушки в заголовке «бла-бла, мега програмерская штука», интереса подрывает больше чем просто «бла-бла, мега програмерская штука» которую можно найти на офф апи проекта :)
ну тогда уж $(люди.тетки) или $(человечество.женщины) (:
но нам нужна только одна определенная тетка), которая потерялась и затесалась в jquery-статью :) так что пусть именно она отгребает по полной)
Просьба по теме. Кто-то мне понизил карму до -1, без оснований, в чём можно убедиться, посмотрев профиль, комментарии и скриншоты того и другого (ссылки ниже, комментарии только плюсуют). Не могу опубликоваться. Сам — фронт-энд веб-программист. Готова статья пока что по этой проблеме: «Кармические игры». Не могу опубликовать, чтобы как-то повысить карму до +5 и публиковать тематические статьи (пока в арсенале одна).
Сейчас из 15 повлиявших на карму 7 дали «Плюс», а 8 человек дали «минус».
Спасибо тем, кто оперативно поднял мне карму, опубликовал статью «Кармические игры», как обещал, в «Персональных блогах», пока карма не 5.
TheShock — конечно, формально не по теме «delegate()», yj по теме JS, в блог которого я не могу писать. Где мне ещё искать поддержку, кроме как не среди «своих» — пишущих про Javascript и jQuery… C минусами в пост тоже полностью согласен, прошу прощения, иного выхода не было.
Теперь строго по теме. Я использовал метод live(). с подгружаемыми событиями click() для новых элементов. Это, действительно, удобнее. Но ни разу не доходил в коде до описываемых коллизий. Спасибо автору, что открыл для меня и читателей этот вопрос и цель появления методов delegate и delegate. И плюс в тему.
Спасибо, большое за статью. Напишу здесь как я пришел к jQuery. Было это совсем недавно.
Потребовалось мне разработать калькулятор. Подумал что нужно для реализации, на какие кнопки какие события вешать и т.д. Начал программировать. Пишу
var ids = new Object();
var ids.item = document.getElementByClass('nameClass');
и так далее.
Проверяю, консоль выдает ошибку на методе getElementByClass. Хм, полез разбираться, и оказалось что в JS нет такого метода!!! Так как до этого читал и пробовал разобраться с jQuery (а так же знал что там есть реализация поиска практически по всему и по классам в частности) то решил использовать его(или её). Вначале прошел эту статью, чтобы освежить в памяти как работает этот фреймворк. Потом пошел сюда api jquery. Так как у меня туго с не русским, пришлось юзать переводчик, для методов которые не понял зачем нужны из примеров. В общем потратив 3-4 часа (а калькулятор нужен был за день) на изучения api. Я довольно быстро написал калькулятор. Мне очень понравилось. Теперь буду использовать только jquery, чего и всем советую :)
по jQuery — огромое количество русскоязычных материалов, слава богу. Даже, русскоязычных книг много (минимум 3 чисто по jQuery). Посоветую вот этот блог www.linkexchanger.su/ — кстати автор блога — автор книжки — очень полезной надо заметить. И стоит по нынешним временам не дорого (за 300 р можно найти) к примеру www.books.ru/shop/books/731989(351р)
Как я и написал, с помощью примеров, и переводчика, я вникал в суть апи. Было бы в 100 тысяч раз удобнее, если бы api, я читал на русском. Тогда и пользователей фреймворка прибавилось бы.
Все отлично разобрано.
Интересно, что я, когда начинал использовать jQuery, то думал, что никакого live использовать не нужно, для добавленных элементов, думал, что jQuery сам отслеживает изменения в DOM, однако позже узнал про live. Но я до сих пор недоумеваю — почему бы не отказаться от live и использовать новые элементы также, как и те, что в DOM были всегда? Я понимаю, что здесь наверняка есть какая-то серьезная преграда, и был бы рад, если бы кто-то пояснил какая.
делегирование может быть реализовано и по старинке:
$('#div').bind('mouseover', function(event) {
var $link = $(event.target).closest('a');
if ($link.length) {
var link = $link[0]
…
так внутри дива можно поймать все А динамически там появляющиеся
и никто не сказал что отличий просто нет между новыми и старыми методами, что это просто оболочка для простоты использования. Смотрим код:
delegate: function( selector, types, data, fn ) {
return this.live( types, data, fn, selector );
},
Использование Delegate и Undelegate в jQuery 1.4.2