Для команды разработчиков прошло несколько сумасшедших недель, во время которых был выпущен релиз jQuery 1.8 beta 1 и проведена следующая за этим событием конференция в Сан-Франциско. Тем не менее, несмотря на все путешествия, конференции, встречи и посты в блогах относительно будущего jQuery, команда разработчиков нашла время для новой версии популярного js-фреймворка.
Стоит отметить, что одним из новшеств является значительная модификация движка селекторов Sizzle (напомним, что он предназначен для поиска элементов DOM-модели) для дальнейшего увеличения производительности. Помимо этой титанической работы, были устранены баги, связанные с браузерами IE 6, 7 и 8, полной поддержки которых (преимущественно старых версий) , вообще говоря, невозможно достичь, однако разработчики прикладывают все силы для того, чтобы облегчить жизнь веб-разработчиков.
Команда jQuery просит помощи у разработчиков в тестировании новой версии – если у вас есть желание помочь, то загрузите последнюю версию библиотеки по адресу http://code.jquery.com/jquery-1.8b2.js и протестируйте весь имеющийся у вас код с новой библиотекой в старых и новых, красных и синих браузерах (IE6, Chrome Canary, Opera и Internet Explorer). Если вы найдете какую-либо ошибку, то постарайтесь создать простой тестовый пример на http://jsfiddle.net/, иллюстрирующий ошибку - это позволит разработчикам найти проблему и определить пути решения. Чем больше сообщений об ошибках получит команда разработчиков, тем быстрее выйдет финальная версия библиотеки.
В бета-версии jQuery 1.8 были закрыты следующие “баги”:
Ajax
#4624: Кодировка ajaxSettigns.contentType по-умолчанию «application/x-www-form-urlencoded»
#10978: jQuery.param() должен принимать не-нативно сконструированные объекты в качестве параметров
#11264: evalScript() использует настройки по-умолчанию от ajaxSetup()
#11426: jQuery.ajax() всегда выдает ошибку при попытке запроса JPG файла в IE
Атрибуты
#5571: Обрыв цепи при передаче параметра undefined в .attr(‘attribute’, undefined)
#10828: attr(“coords”) возвращает значение undefined в IE7
#10870: Некорректное поведение $.removeAttr(“selected”)
#11316: Рассмотреть возможность поиска в первую очередь по типу элементов через valHooks, а затем по nodeName
Сборка
#10692: Конфигурация опций валидатора JSHint для более точного соответствия гайдлайну
#10693: Обобщение функций тестирования в iFrame в юнит тестах
#10901: Юнит тесты не работают, если тестирование проводится из file:// или в случае отсутствия PHP
#10902: Возможность тестирования версии сборки jQuery в юнит тестах
#10931: Юнит тесты не должны требовать доступа в интернет
Ядро
#10466: Неправильная обработка упакованных примитивов для «глубоких» объектов в jQuery.param()
CSS
#10639: В webkit функции outerWidth(true) и css(‘margin’) возвращают % вместо px
#10754: jQuery.swap возвращает результат функции обратного вызова вместо простого выполнения
#10782: Неправильный расчет ширины
#10796: Баг в IE7 с $(“#el”).css(‘’background-position)
#10858: Регулярные выражения в css.js не завершены
#11119: Функции curCSS необходимо только два аргумента
Данные
#11309: Неправильная обработка шестнадцатиричных атрибутов данных (data-*)
Отложенные объекты
#11306: вызов функций .disable() или .lock() для объекта $.Callbacks сбрасывает статус fired()
Эффекты
#8498: Хуки анимации
#10006: Метод show работает не так, как ожидается во всех браузерах в случае, если вызывается для фрагмента документа
#10848: В определенных переключение анимации приводит к утрате состояния отслеживания (tracking)
#11415: Тихое игнорирование отрицательных CSS-значений в местах, где они недопустимы
#11469: Отрицательное значение свойства margin в анимациях (.animate)
События
#8165: В браузере Chrome на неактивных кнопках вызывается функция .live(‘click’, handler)
#10819: Убрать “this.on.call(this,”
#10878: В браузере IE8 с jQuery 1.7 не работает $(“select”).live(“change”, function(){…
#10961: В браузерах IE6-9 с jQuery 1.7 ошибка в XRegExp
#10970: Параметр селектора .on() не работает с селектором :not(:first)
#10984: Невозможно применить функцию off() для частных событий
#11021: Перекрытие пространства имен “hover”
#11076: Функция .clone(true) теряет фильтры делегирования
#11130: jQuery.fn.on: связывание (binding) с нулевым селектором игнорирует данные
#11145: $(document).on() не работает с атрибутом name=’disabled’
Манипуляция
#9427: Передача undefined в .text() не возвращает управление установщику (setter)
#10753: Не выделять в отдельную функцию evalScript в manipulation.js, так как используется только один раз
#10864: Метод text() на фрагменте документа всегда возвращает пустую строку
#11055: Обновить список элементов HTML5 Shim для поддержки последней html5shiv
#11217: Проблема с функцией append() в webkit
#11291: Клонирование XMLDoc с узловыми элементами HTML5 не работает в IE
#11323: Теги script с атрибутом type=”text/ecmascript” переносятся в DOM
#11356: Утечка памяти в safeFragment
Прочее
#10952: Метод .fired() не работает с объектом Callbacks, когда у него стоит флаг “once”
#11257: В случае отсутствия PHP не правильно определятся путь к исходным файлам в тестах
Очередь
#10967: .promise() не добавляет методы к объекту
Support
#7986: Баг в $.support.boxModel, если страница содержит CSS для DIV-элементов
#11048: Support тесты меняют расположение позиционируемых элементах в IE 6-9
#11337: Баг в $.support.eliableMarginRight
Обход
#11370: $(“<div>”).siblibgs() бросает исключение
Полный список изменений, начиная с версии jQuery 1.7.2 вы можете как всегда посмотреть в блоге jQuery.
Источник: jQuery