Как стать автором
Обновить

Комментарии 46

Забыли еще одно важное изменение — скорость выполнения .data() наконец-то сопоставима со скоростью выполнения .attr(). При тысячах вызовов разница в скорости была довольно весомой и приходилось использовать второе.
Мде… а я еще с 1.5 не успел наиграться…
главное что это работает.
Хороший топик. Именно так должны выглядеть топики про новый релиз jQuery, а не «Вышел jQuery 1.6»
Капец, как же быстро она развивается!
И это хорошо.
tv = ['test-value'];

видимо имелось в виду

tv = d['test-value'];
абсолютно верно, спасибо.
id=«div1» data-test-value=«0»
видимо имелось ввиду
id=«div1» data-test-value=«123»
Простите меня, ночь уже была… :)
Разработчики добавили возможность изменения css-свойств элементов функцией .css() в зависимости от их значения с помощью инструкций "+=" и "-="

Как же я рад! Спасибо!
Эх, еще бы в сам CSS такую фичу! Мечты-мечты…
а есть что то типа visualjquery, но посвежей ?) а то больно хороший ман был
C каждой версией всё лучше и лучше, и нет ощущения «нагроможденности» )
«ключи надо передавать в camel-case формате» — насколько я знаю camelcase — это записьТакогоФормата, а в примере идет разделение дефисом.
Читайте внимательнее, пример есть и для версии 1.5 — там-дефисом, есть и для 1.6 — тамCamelCase
Простите, был напуган, все верно.
Ну, формально, записьТакогоФормата — это camelBack :)
CamelCase — это ЗаписьТакогоФормата.
Не согласен. Есть lowerCamelCase & UpperCamelCase.
Понапридумывают терминов…
Термины не новые и давно известные.
встречал то, что второе называется PascalCase
Интересно зачем было ломать старый attr, а не ввести просто новый метод attr2?
Возможно это проблема авторов плагинов, но вот у меня 7 из 9 сторонних плагинов из нового attr отвалились.
Очень часто авторы библиотек и фреймворков становятся перед выбором: новые костыли для обратной совместимости или изменение интерфейса. Как правило, первый подход сильно усложняет код и в конечном итоге ведет к удорожанию поддержки и снижению эффективности, а второй может вызвать неприятие сообщества. Как правило фреймворки идут по первому пути и в итоге задыхаются под собственной тяжестью, вытесняемые молодыми конкурентами. Второй путь требует определенного мужества и сопряжен с риском. Но я рад, что ребята из jQuery выбрали именно его
Старый attr() работает отлично. Мне лично код для совместимости с новым его поведением править не пришлось. Просто не надо было делать вот так:
var a = $('input').attr('value');
var b = $('[type=checkbox]').attr('checked')

Это мало того что некрасиво, так теперь еще и неправильно.
Вот здесь я, кстати, наврал. Обратите внимание на
$('.mycheckbox').attr('checked', true);
$('.mycheckbox').attr('checked', false);

Не самый красивый код для временной совместимости 1.5 и 1.6
$('.mycheckbox:not(:checked)').click();
$('.mycheckbox:checked').click();


Код работает только в базовых случаях, на практике все может пройти не так гладко.
Для совместимости проще, наверное, работать напрямую со свойствами, а не с атрибутами:
var a = ($('.mycheckbox')[0] || {}).checked; // чтение
$('.mycheckbox').each(function() { this.checked = true; }); // запись

По сути, именно так и работает .prop()
Для тех кто не очень глубоко в теме — это сильно страшно, нет?
Не забудьте о найденном неприятном баге — jQuery 1.6 отправляет IE6 в бесконечный цикл. Исправление будет в 1.6.1 в конце недели. Если прямо так уж не терпится выпустить 1.6 в продакшн — ручки в помощь. Мне вот, например, не терпится, поскольку data наконец соответсвует спецификации и ей можно пользоваться.
о. теперь понятно, что изза attr у меня был баг на одном сайте (:
Подскажите где почитать подробнее про data (желательно на русском)?
Спасибо… что-то не то я вбивал в поиск)))
А вот уже и 1.6.1 released
Давайте на чистоту, что-то перемудрили
$("#id INPUT, #id SELECT").attr(«disabled»,""); — не пашет (работало в 1.5 )

$("#id INPUT, #id SELECT").attr(«disabled»,false); — пашет (работает в 1.6)

мне кажется это противоречит их нововведениям: «в 1.5 вызов .attr('checked') возвращал true/false в зависимости от установки флага, в версии же 1.6 .attr('checked') вернёт строковое значение, записанное в атрибут»

а вы как считаете?

извините, предыдущий коммент сам запостился при вставке строк через (Ctrl + V) удалять или исправлять свои комменты похоже нельзя
Если исходить из того, что было в 1.5 и что стало в 1.6, то может быть и перемудрили, но вот если бы они так делали изначально — то это было бы правильнее, на мой взгляд, чем было в 1.5. Поэтому они внесли нужные изменения, которые да, вызвали проблемы с переходом на сл. версию, но, ИМХО, изменения нужные.
мне кажется вы недопоняли мой пост, в 1.6 они сделали:
$("#id").attr(«checked»,«checked»)
а было:
$("#id").attr(«checked»,true)
и я согласен, правильно сделали, но зачем менять
… продолжаю (у хабра проблемы с сочетаниями клавишь в ФФ):
но зачем менять
$("#id").attr(«disabled»,false);
когда было
$("#id").attr(«disabled»,""); — это ведь правильней, они же так поступили с «checked», зачем менять на противоположный для «disabled»?
извините за комментарий который получился по кусочкам, хабр реально глючит, пришлось это сообщения сначала набрать в блокноте )))
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории