Comments 63
Классно! Классно то, что проект очень быстро развивается. Классно, что ребята огромное внимание уделяют производительности и каждый новый релиз это подтверждает.
Но блин! Ребята, я не успеваю за вами ))))
PS: Пойду, change log почитаю.
Но блин! Ребята, я не успеваю за вами ))))
PS: Пойду, change log почитаю.
+18
Ребята, все круто, я понимаю, что здесь большинство Web-программистов, но вы реально собираетесь писать о каждом релизе jQuery?.. Давайте тогда анонсировать каждый новый выход C++ Boost, например…
-20
Зарелизился jQuery — напиши на Хабре.
-11
Если понимаешь, зачем чушь спрашиваешь?
+2
А по-вашему такие релизы случаются каждый вторник? Весьма существенное обновление.
+13
Так анонсируйте же. Или за вас это должны делать web-программисты?
+12
Слушайте, это большой интересный релиз, изменения в котором скажутся на моей повседневной работе.
Как же об это не писать?
Как же об это не писать?
+2
Двойственные чувства вызывают
вместо
это дополнительный звоночек о том, что с этим самым
.on()
и .off()
. С одной стороны, унифицировать все и вся это очень JQuery way, а с другой стороны, когда видишь в коде$('.hello').delegate('click', '.world', fn);
вместо
$('.hello .world').click(fn);
это дополнительный звоночек о том, что с этим самым
'.world'
может что-то оказаться «нечисто».+3
А они старые методы никуда не дели. Пока что
Так что замените в вашем примере
.bind()
, .delegate()
, .live()
остаются, но не рекомендуемы, а .click()
и прочие т.п. сокращения так и останутся и далее — их никто отменять не собирается.Так что замените в вашем примере
.delegate()
на .on()
(даже список параметров менять не надо) и продолжайте подозревать «нечисто» :)0
По присутствию селектора появится дополнительный звоночек что может что-то оказаться не чисто =)
0
Насколько я правильно помню метод .delegate(), в первом случае, если в селектор .hello после загрузки DOM вставить селектор .world и нажать на последний, то вызовется функция fn, во втором вашем случае, если внутри .hello вдруг появится .world и кто-то по нему кликнет, ничего не произойдет.
0
В чем разница между $('a').on('click', myHandler); и $(document).on('click', 'a', fn);?
0
Первое повесит хендлер единожды, второе будет кроме этого отслеживать появление
Собственно .live малость устарело еще до 1.7 и нужно было юзать .delegate вместо этого.
<a>в DOM'e.
Собственно .live малость устарело еще до 1.7 и нужно было юзать .delegate вместо этого.
+1
UFO just landed and posted this here
> второе будет кроме этого отслеживать появление <a> в DOM'e.
Неверно. Никто не будет отслеживать никакого появления элементов. События в DOM всплывают на родительские элементы, поэтому document получит все клики, на каком бы элементе они не были. Следовательно, повесив один обработчик на document и проверяя event.target на соответствие селектору 'a', можно обрабатывать все события клика на этих элементах.
Неверно. Никто не будет отслеживать никакого появления элементов. События в DOM всплывают на родительские элементы, поэтому document получит все клики, на каком бы элементе они не были. Следовательно, повесив один обработчик на document и проверяя event.target на соответствие селектору 'a', можно обрабатывать все события клика на этих элементах.
+5
В одном из комментариев выше кто-то сравнил два варианта:
$('.hello').delegate('click', '.world', fn);
$('.hello .world').click(fn);
Безотносительно того комментария, из которого взят пример, задам свой вопрос. Правильно ли я понимаю, что:
1. в первой строке сначала будут найдены все элементы класса hello и на каждый из них будет повешен делегат, который будет отслеживать всплытие событий click от дочерних .world
2. во второй строке никаких делегатов нет, просто на все элементы удовлетворяющие селектору ".hello .world" будут повешены обработчики click.
Соответственно, строки не равнозначны. В первом случае, при динамической вставке нового .world элемента в один из ранее существовавших .hello, при клике на новый .world будет вызвана функция fn. Во втором случае, в аналогичном эксперименте, функция fn вызвана не будет.
Я правильно всё понял?
$('.hello').delegate('click', '.world', fn);
$('.hello .world').click(fn);
Безотносительно того комментария, из которого взят пример, задам свой вопрос. Правильно ли я понимаю, что:
1. в первой строке сначала будут найдены все элементы класса hello и на каждый из них будет повешен делегат, который будет отслеживать всплытие событий click от дочерних .world
2. во второй строке никаких делегатов нет, просто на все элементы удовлетворяющие селектору ".hello .world" будут повешены обработчики click.
Соответственно, строки не равнозначны. В первом случае, при динамической вставке нового .world элемента в один из ранее существовавших .hello, при клике на новый .world будет вызвана функция fn. Во втором случае, в аналогичном эксперименте, функция fn вызвана не будет.
Я правильно всё понял?
+1
Второй вариант работает абсолютно так же, как метод
.live()
, а первый — как обычный .bind()
. Если знаете подробности — то вот она разница, если нет — то я дал вам подсказку, куда копать.+1
Нужно уже включить jQuery в состав JS всеми браузерами изначально и оперативно обновлять его. :) Думаю, что jQ имеет большую популярность, чем MooTools, PrototypeJS, YUI, ExtJS итп. Даже яндекс юзает jQ.
+10
А вас не смущает при этом, что jQuery для производительности удаляют код для обратной совместимости? Думаете по какой причине амазон до сих пор пользуется jQuery версии 1.2.6?
0
ИМХО, достаточно и самых ранних версий. Хватит хорошего селектора и бинда на события + .css, .val, .attr, .animate ну и fadeIn/Out, slideDown/Up/Toggle анимаций. Большего и не нужно. :)
0
А windows и x86 делали обратное. Очень совместимо, но сегодняшний офис грузится дольше чем хп или 1997 версия в соответствующих годах. Если учесть закон Мура, то становится страшно за то что они там воротят в потрохах системы.
+1
Скорее по причине оттестированности амазоном именно этой версии кода. Обновлять библиотеку и тестировать весь js на совместимость с новой версией — это дорого.
0
угу я тоже недавно обновился с 1.2.6.
Угадайте чему равно a в 1.2.6 и в более поздних релизах.
$('#something').css('borderWidth',10);
var a = $('#something').css('borderWidth');
Угадайте чему равно a в 1.2.6 и в более поздних релизах.
0
Лишние 80Кб иногда не особо хорошо кладутся в высоконагруженные сервера.
0
Если я не ошибаюсь, то jQuery уж можно точно положить в кэш. Со стороны nginx'а или(и) со стороны браузера. Физически посылать заголовки о кэшировании. Не слышал ни разу, что высоконагруженные сервера — это минимум css, js файлов… Простите, но ИМХО — бред.
+2
Посмотрите сорцы www.ya.ru, например.
0
Теоретически jQuery можно пересобрать, выкинув лишнее. Об этом говорил Paul Irish.
0
У меня тоже часто возникают мысли о такой конструкции
<script type="text/javascript" src="jq.js" commonly-used-library="jquery;version=1.7"></script>
<script type="text/javascript" src="less.js" commonly-used-library="less;version=1.1.3"></script>
0
Кто-нибудь может сравнить (или видел внятное сравнение в интернете) jQuery и YUI 3.x?
0
С такой скоростью выхода новых версий, после ознакомления со спецификацией и внедрения всех возможностей в проекте понимаешь, что уже снова требуется ознакамливаться с новой спецификацией и заниматься внедрением новой версии в проекте. Никто конечно не заставляет поддерживать в своем проекте актуальную версию, но тем не менее, при желании так делать, ситуация получается забавная.
0
Они уже давно в бете :) blog.zalab.net/2010/11/jquery-templates-plugin.html и blog.zalab.net/2010/11/jquery-templates-plugin-template-tags.html
Наверняка и на хабре уже про них было — пользуйтесь поиском.
Наверняка и на хабре уже про них было — пользуйтесь поиском.
0
Как лучше всего изучить jQuery?
я имею в виду не примеры по созданию слайдеров и менюшек, а подробное рассмотрение всех функций. Книги тоже быстро устаревают, появляются новые методы, старые становятся запрещенными. Что делать?
я имею в виду не примеры по созданию слайдеров и менюшек, а подробное рассмотрение всех функций. Книги тоже быстро устаревают, появляются новые методы, старые становятся запрещенными. Что делать?
-2
http://code.jquery.com/jquery-1.7.js — и, к сожалению ли, к счастью ли, никак иначе.
+1
Почему же, бывают еще поясняющие видео и поясняющие статьи на хабре :)
По ним быстрее получается, и некоторые моменты разжуют.
По ним быстрее получается, и некоторые моменты разжуют.
+1
А документация чем вам не угодила?
0
насколько я заметил там не пишут о том, какие методы лучше использовать, не раскрываются основы работы. Конкретно методы и функции и их использование.
0
А вообще, конечно, смотря как ставить вопрос: «Как с этой хренью работать» или «Как эта хрень работает». Ключ к ответу на первый вопрос — в опыте и исследовании документации применительно к конкретной задаче (копать в воздух и писать хэллоуволды занятие скучное и малопознавательное). А второй вопрос решается изучением исходников.
0
Попробуйте начать писать на jQuery чтобы изучить его
0
вопреки расхожему мнению я не считаю, что писать на языке (а jquery я не считаю библиотекой, его можно назвать уже полноценным языком) нужно сразу, не понимая принципов работы.
0
Конечно не нужно, но принципы работы понимаются действительно из домунтации, а опыт использования jQuery API (тонкости и подводные камни) понимаются только при использовании.
А еще я категорически несогласен с утверждением, что jQuery это больше чем библиотека. Это именно библиотека, и если вы плохо знакомы с JavaScript, то врят ли по-настоящему поймете как она работает и что происходит внутри.
Мне вот недавно коллега показывал неработающий код на JS (с использование jQuery), и сказал «наверное тут проблема в том, что когда jQuery парсит код ...». Коллега отнюдь не глупый человек и хороший программист в других языках программирования.
А еще я категорически несогласен с утверждением, что jQuery это больше чем библиотека. Это именно библиотека, и если вы плохо знакомы с JavaScript, то врят ли по-настоящему поймете как она работает и что происходит внутри.
Мне вот недавно коллега показывал неработающий код на JS (с использование jQuery), и сказал «наверное тут проблема в том, что когда jQuery парсит код ...». Коллега отнюдь не глупый человек и хороший программист в других языках программирования.
+2
Меня смущают ваши 70% знания jQuery из резюме.
+1
Начните с этого www.rsdn.ru/article/inet/jQuery.xml
+1
UFO just landed and posted this here
Sign up to leave a comment.
jQuery 1.7 Released