基金会董事会更新 – 重新关注关键优先事项

发布于 作者

六月份,jQuery Foundation 董事会在旧金山 Famous 办公室举行了面对面的会议。在会议期间,董事会同意以下优先事项,以履行基金会的使命,即通过开发和支持开源软件以及与开发社区合作来改善开放网络,使其对每个人都可访问

我们的优先事项是

  1. 多样性: 开源依赖于贡献。一个组织如果拥有封闭的群体,排斥甚至积极敌视新来者,其活力就会被破坏。拥有来自不同文化、背景、观点和技能的多元化贡献者具有不可估量的价值。jQuery Foundation 致力于在所有层面上提高多样性,从一般的开发社区到我们托管的项目,以及我们自己的董事会,我们承认我们今天的董事会缺乏多样性。
  2. 可访问性: 与多样性一样,这个目标也体现了包容精神。Web 技术有很多功能使其对视力、运动或认知障碍的用户友好。许多 Web 开发者不了解它们,或者在没有意识到影响的情况下禁用它们。我们希望改变这种状况。上个月的 jQuery SF 会议有几位优秀的演讲者展示了 Web 对某些用户来说会是什么样子:https://www.youtube.com/watch?v=HWzEF1P-bvI#t=7h34m30s
  3. 教育: 这个目标贯穿于我们所有的优先事项,涵盖了许多不同的主题。通过教育开发者,无论是在开源世界还是在多样性和可访问性问题上,我们可以让网络成为一个包容的地方。

我们将通过专注于三个关键领域来实现这些目标

  1. 积极招募新项目: 正如您所看到的,jQuery Foundation 的使命远远超出了最初的 jQuery 项目。我们正在寻找我们可以帮助托管的项目。基金会为项目提供更大的知名度、在标准制定过程中的发言权、帮助管理其社区、CDN 等基础设施以及其他好处。项目仍然是自治的,基金会不会决定项目的目标或路线图。然而,我们可以为实现双方同意的项目目标提供财政支持。
  2. 定义和提供必要的(基础到高级)Web 开发者教育: 我们希望帮助开发者学习如何为开源项目做出贡献,如何运行开源项目,以及如何构建应用最佳实践的网站或应用程序,此外,我们还希望教育开发者了解多样性和可访问性在他们项目中的重要性和实施方法。最后,我们希望让人们了解 jQuery Foundation 如何帮助开发者更好地完成工作。
  3. 通过外展扩大我们的影响力: jQuery Foundation 只有在相信使命的公司和个人的支持下才能实现其目标。如果您或您的公司有兴趣加入我们,以改善 Web 开发社区,请联系 info@jquery.org。与我们托管的开源项目一样,jQuery Foundation 本身也由会员、志愿者和捐款提供支持!感谢所有已经做出贡献的人,感谢您对使命的支持。

jQuery Foundation 项目更新

发布于 作者

为了让 jQuery Foundation 成员和 Web 开发人员能够快速了解我们所有的项目,我们将定期在此处发布合并的项目更新。

jQuery Core

为 2/3 的网站提供支持,jQuery 是一个快速、小型且功能丰富的 JavaScript 库

自上次 12 月的发布 以来,团队一直在努力开发一个主要的 3.0 版本。这个版本——其 alpha 版本于 7 月 8 日发布——包含许多更新(包括符合 Promises/A+ 的 Deferreds)和错误修复,并且终于删除了之前已弃用且未使用的功能。

链接:下载会议记录3.0 更改的完整列表

非常感谢核心团队和所有为即将发布的版本做出贡献(并将做出贡献)的人。
问题?  联系 Timmy Willison

globalize-mark-light (1) Globalize

用于国际化和本地化的 JavaScript 库,利用官方 Unicode CLDR JSON 数据

Globalize 1.0 版本于 4 月发布,为开发人员提供了本地化的数字格式化和解析、日期和时间格式化和解析、相对时间格式化、货币格式化以及支持复数和性别的消息格式化,这些格式化在浏览器和 Node.js 中运行,在所有浏览器和 Node.js 中都保持一致。

社区关注的一件令人兴奋的事情是能够为生产编译 Globalize。这将使应用程序能够生成自定义运行时代码,该代码非常小且快速。

链接:git邮件列表
问题?  联系 Rafael Xavier de Souza

icn-jquerymobile-logo jQuery Mobile

统一的、基于 HTML5 的用户界面系统,适用于所有流行的移动设备平台,建立在 jQuery 和 jQuery UI 的基础上

团队一直在全力开发版本 1.5.0,它将带来许多改进,包括

  • 一个新的独立增强模块,用于自定义、快速声明式地初始化任何 JavaScript,包括 jQuery 部件和插件。
  • 改进并重写的与 jQuery UI 的共享代码,包括按钮、复选框/单选按钮、控制组和手风琴部件,该手风琴部件将取代当前的可折叠和可折叠集部件。
  • jQuery Mobile 的所有部件现在也将具有 classes 选项,以提高可定制性和主题设置。
  • 重写了表格和导航栏部件
  • 大大提高了模块化程度

查看完整的发布计划 此处

链接:下载会议记录

问题? 请联系 Alexander Schmitz

Esprima

高性能、符合标准的 ECMAScript 解析器,使用 JavaScript 编写

在三月份,我们发布了 Esprima 2.1.0,引入了对几个新的 ES6 语法的支持。与此同时,我们做了很多工作来完成其 ES6 支持(请查看 路线图)。我们还改进了测试基础设施和工作流程,使代码库更易于贡献者使用。

链接:git邮件列表

非常感谢所有为本次发布贡献补丁的人:Ariya HidayatBei ZhangBrandon MillsMike RennieMike Sherov

问题? 请联系 Ariya Hidayat

icn-ui-logo jQuery UI

建立在 jQuery 库之上的精选 UI 交互、效果、部件和主题。

团队在三月份发布了 jQuery UI 1.11.4,修复了 Draggable、Resizable、Sortable、Accordion、Dialog、Slider 和 Tooltip 的错误。

我们现在专注于支持指针事件,并拆分 UI Core 和旧 jQuery 支持,以实现更小的构建

链接:git会议记录

问题?请联系 Scott González

ChassisChassis

为 CSS 库、JavaScript UI 库和 Web 开发人员创建开放标准。

团队正在致力于其第一阶段发布,该阶段将涉及一个初始 CSS 框架——计划于今年夏天晚些时候发布。

主题生成器也在进行中。

链接:git会议记录

感谢 Micheal Arestad、Alexander Schmitz 和 Rohit Mulange

问题? 请联系 Sarah Frisk

qunitQUnit

强大、易于使用的 JavaScript 单元测试框架

最新版本 1.18.0 对 HTML 报告进行了许多改进,使其调试失败更加高效。例如,新的差异算法使发现失败的预期/实际断言之间的差异更加容易。

我们目前正在致力于 js-reporters 项目,QUnit 将实现该项目,以及希望许多其他 JavaScript 测试框架和工具。目标是标准化一个具有事件和事件数据的 API,用于测试运行器。像 Karma 这样的工具可以采用单个接口,而无需为每个测试工具单独提供支持。

如果您想帮助 QUnit 发展,请查看这些问题

链接:git会议记录

问题? 请联系 Jörn Zaefferer

PEP

指针事件 Polyfill:Web 平台的统一事件系统

PEP 的第一个版本 (0.3.0) 于四月份发布,该项目目前正在致力于自动化和改进 W3C 测试套件。

链接:git会议记录

问题? 请联系 Scott González

获得一些认可!

发布于 作者

提交您的项目参加 jQuery 基金会 Web 卓越计划

您的项目/网站/集成/应用程序有多么出色?可能非常出色,否则您不会去做,对吧?

jQuery 基金会希望向世界展示开发人员使用 jQuery 基金会项目所做的所有令人难以置信的事情。这就是我们推出 jQuery 基金会 Web 卓越计划的原因。

运作方式如下

  1. 您选择要提交的类别或类别(请参阅下面的类别描述)
  2. 告诉我们您、您的公司/项目,以及 jQuery 基金会项目如何帮助您实现目标
  3. 我们将在 jQuery 博客上突出显示项目,并在社交媒体上推广它们

您还在等什么?获得您和您的项目应得的知名度! 转到 Web 卓越提交表单,立即提交您的项目!

类别描述

  • 全能摇滚明星: 此类别突出显示利用任何 jQuery 基金会项目来产生出色的数字体验的网站/应用程序。请突出显示您使用 jQuery 基金会工具、库和资源(独立或与其他开放 Web 组件和框架结合使用)来解决实际问题和取悦用户的方法。
  • 移动杰作: 此类别突出显示使用任何 jQuery 基金会项目在所有设备(包括移动设备)上与用户持续互动的网站/应用程序。
  • 企业: 突出显示利用任何 jQuery 基金会项目帮助其企业组织(5,000 名及以上员工)实现战略 IT 和/或业务目标(例如系统集成、正常运行时间、兼容性/可访问性、收入、成本降低)的组织。
  • 顶级速度: 突出显示使用任何 jQuery 基金会项目作为快速项目/产品发布的一部分或实现快速网站/应用程序性能的组织。 您的用户是否需要速度,而 jQuery 基金会项目可以帮助您实现?告诉我们!
  • 全球旅行者: 展示在独立使用或与其他 jQuery 基金会项目结合使用时,能够最好地展示 Globalize 力量的网站、应用程序、系统或项目。
  • 由 jQuery 提供支持: 展示将任何 jQuery 基金会项目作为依赖项的 SDK 和其他工具集。

规则和条款

  • 参赛不收取任何费用
  • 仅接受英文提交
  • 您必须使用 提交表单 提交您的条目
  • 请为您的文本答案中的所有图形/视觉效果提供框/驱动器链接,以便清楚地了解所需的放置位置
  • 您可以提交多个类别,但请为每个所需的类别进行单独提交
  • jQuery 基金会保留随时更改或取消类别的权利
  • 将公开显示选定的提交条目在 jQuery 基金会网站上,并通过我们的社交媒体渠道进行推广
  • 提交条目授予 jQuery 基金会使用提交内容进行营销和公共关系目的的权限和批准

jQuery 3.0 和 jQuery Compat 3.0 Alpha 版本发布

发布于 作者

距离我们发布一个主要版本已经很久了,你理应得到一个。所以我们很高兴地宣布 jQuery 3.0 的第一个 alpha 版本!

尽管版本号是 3.0,我们预计这些版本在升级现有代码时不会带来太多麻烦。是的,有一些重大变更,这证明了主要版本的提升是合理的,但我们希望这些破坏性变更不会影响太多人。 jQuery Migrate 插件 也可以帮助你识别代码中的兼容性问题。你对这个 alpha 版本的变更的反馈将对我们有很大帮助,所以请尝试在你的现有代码和插件上使用它!

实际上,这里有两个版本。第一个是 jQuery 3.0,它支持现代浏览器和从 IE9 开始的环境。第二个是 jQuery Compat 3.0,它包含对 IE8 的支持。作为额外的奖励,jQuery 和 jQuery Compat 都将包含对 Yandex.Browser 的支持,这是一款于 2012 年发布的一款免费浏览器。你可以从 jQuery CDN 获取文件,或者直接链接到它们

https://code.jqueryjs.cn/jquery-3.0.0-alpha1.js

https://code.jqueryjs.cn/jquery-compat-3.0.0-alpha1.js

你也可以从 npm 获取 alpha 版本

npm install jquery@3.0.0-alpha1

npm install jquery-compat@3.0.0-alpha1

 

主要变更

以下只是这些版本中主要的新特性、改进和错误修复的亮点。完整的变更列表可在本文末尾和我们的 GitHub issue tracker 上找到。在 GitHub 上,你还可以看到我们预计在后续 beta 和最终版本中实现的功能,这些功能尚未实现。

简化了 .show().hide() 方法

每个人对 jQuery 的 .hide() 方法的心理模型是,它在 CSS 中设置 display: none。相反,.show() 清除 display,以便元素再次显示(假设其父元素没有被隐藏)。很简单,对吧?

好吧,不是的。实际上,多年来,人们要求我们“修复”许多复杂的特殊情况,这使得这些方法变成了一个复杂的原则融合体。例如,如果元素在样式表中设置为 display: none 怎么办?jQuery 会尝试通过直接强制元素设置为 display: block 来覆盖它。好的,但是如果像 <li> 这样的通常为 block 元素的元素被不同的样式表规则设置为 display: inline 怎么办?又比如,你在元素添加到文档之前调用这些方法,而我们不知道它将具有什么 display 值的情况呢?确定所有这些需要额外的工作。有时这仍然只是一个错误的猜测。

由于这些方法向元素添加了 style 属性,因此它们不太容易与响应式设计等技术配合使用,在响应式设计中,元素的可见性也可以由媒体查询设置。这导致需要 jQuery 处理程序来监听 orientationchangeresize 事件,并手动隐藏或显示页面的某些部分;这破坏了媒体查询试图实现的优雅解决方案。

你可以看到 jQuery 已经走到了通往彻底疯狂的道路上,完成这段旅程没有意义。这些特殊情况和检查不仅复杂且不完整,而且会导致大型页面出现严重的性能问题。

因此,我们尝试性地违背这些方法的演进,并恢复到一个简单、原始的模型。这将破坏一些代码。如果你的样式表中存在设置为 display: none 的元素,则 .show() 方法将不再覆盖它。因此,迁移到 jQuery 3.0 的最重要的规则是:不要使用样式表将默认值设置为 display: none,然后尝试使用 .show() – 或任何显示元素的方法,例如 .slideDown().fadeIn() – 来使其可见。

如果需要默认隐藏元素,最好的方法是向元素添加一个类名,例如“hidden”,并在样式表中将该类定义为 display: none。然后,你可以使用 jQuery 的 .addClass().removeClass() 方法添加或删除该类来控制可见性。或者,你可以在 .ready() 处理程序中调用 .hide() 在页面上显示元素之前隐藏这些元素。或者,如果你真的必须保留样式表默认值,可以使用 .css("display", "block")(或适当的 display 值)来覆盖样式表。

我们知道这很可能会成为 jQuery 3.0 中最具争议性和最困难的变更之一,因此我们希望在这个早期版本中发布它,看看其影响。请告诉我们它如何影响你的代码,以及你需要更改什么才能与这个新模型一起工作。

https://github.com/jquery/jquery/issues/1767
https://github.com/jquery/jquery/issues/2057
https://github.com/jquery/jquery/issues/2308

.data() 名称的特殊情况

我们已经更新了我们的 .data() 实现,使其更接近 HTML5 dataset 规范。现在所有键都从 kebab-case 转换为 camelCase,无论访问方法如何,并且数字不再参与转换。例如,我们不再区分 “foo-bar” 和 “fooBar”,但区分 “foo-42” 和 “foo42”。这些更改主要会在通过不带参数调用 .data() 来获取所有数据时,或者尝试使用转换后的键(.data(“foo42”))而不是原始键(.data(“foo-42”))访问数据时生效。

https://github.com/jquery/jquery/issues/1751

jQuery.Deferred 现在与 Promises/A+ 兼容

jQuery.Deferred 对象已更新,以与 Promises/A+ 和 ES2015 Promises 兼容,并经过 Promises/A+ Compliance Test Suite 验证。这意味着引入了 .catch() 方法,并且对 .then() 方法进行了重大更改

  • .then() 回调中抛出的异常现在将成为拒绝值。 以前,异常会一直冒泡,中止回调执行并不可逆地锁定父级和子级 Deferred 对象。
  • .then() 创建的 Deferred 的解析状态现在由其回调控制——异常成为拒绝值,而非 thenable 的返回值成为完成值。 以前,拒绝处理程序中的返回值会成为拒绝值。
  • 回调始终异步调用。 以前,它们会在绑定或解析时立即调用,以两者中较晚者为准。
  • 进度回调函数不再能解析与其绑定的 Deferred 对象。

考虑以下示例,其中父级 Deferred 被拒绝,并且子级回调会生成一个异常

var parent = jQuery.Deferred();
var child = parent.then( null, function() {
  return "bar";
});
var callback = function( state ) {
  return function( value ) {
    console.log( state, value );
    throw new Error( "baz" );
  };
};
var grandchildren = [
  child.then( callback( "fulfilled" ), callback( "rejected" ) ),
  child.then( callback( "fulfilled" ), callback( "rejected" ) )
];
parent.reject( "foo" );
console.log( "parent resolved" );

从 jQuery 3.0 开始,这将首先记录“parent resolved”,然后调用任何回调,每个子级回调将记录“fulfilled bar”,并且孙级对象将使用 Error “baz” 被拒绝。 在以前的版本中,它会记录“rejected bar”(子级 Deferred 被拒绝而不是完成)一次,然后立即以未捕获的 Error “baz” 终止(未记录“parent resolved”,并且孙级对象未解析)。

虽然捕获异常对于浏览器内调试具有优势,但使用拒绝回调来处理它们更具声明性(即明确性)。 请记住,这意味着您有责任始终为使用 promise 时添加至少一个拒绝回调。 否则,任何错误都将被忽略。

可以通过使用现在已弃用的 .pipe() 方法(其具有相同的签名)来恢复旧行为。

jQuery.when 也已更新为接受任何 thenable 对象,其中包括本机 Promise 对象。

https://github.com/jquery/jquery/issues/1722
https://github.com/jquery/jquery/issues/2102

移除了 jQuery.ajax 中的特殊 Deferred 方法

jqXHR 对象是一个 Promise,但也有额外的像 .abort() 这样的方法,以便你可以在请求发出后停止它。

随着用户越来越多地采用 Promise 模式进行异步工作,例如 AJAX,对 jQuery.ajax 返回的 Promise 进行特殊处理的想法越来越糟糕。

success, error, complete
done, fail, always

请注意,这不会对同名的回调产生任何影响,这些回调仍然存在并且不会被弃用。这只会影响 Promise 方法!

https://github.com/jquery/jquery/issues/2084

错误案例不会静默失败

也许在某个深刻的时刻,您会想知道:“窗口的偏移量是多少?” 然后您可能意识到这是一个疯狂的问题——窗口怎么可能拥有偏移量?

在过去,jQuery 有时会尝试使像这样的一些情况返回某些内容,而不是抛出错误。在这种情况下,请求窗口的偏移量,到目前为止的答案一直是 { top: 0, left: 0 } 在 jQuery 3.0 的这个 alpha 版本中,我们正在尝试让这些情况抛出错误,以便不会默默地忽略疯狂的请求。请尝试 alpha 版本,看看是否有代码依赖 jQuery 来掩盖无效输入的错误。

https://github.com/jquery/jquery/issues/1784

.width(), .height(), .css(“width”) 和 .css(“height”) 返回十进制值(只要浏览器这样做)

以前,jQuery 在获取宽度和高度时会四舍五入值。一些浏览器返回子像素值——例如 IE 和 Firefox——有时用户在依赖这些值进行布局时需要这种精度。我们预计此更改不会对您的代码产生重大影响,但如果产生影响,请告知我们。

https://github.com/jquery/jquery/issues/1724

删除了已弃用的事件别名

.load.unload.error,自 jQuery 1.8 起已弃用,现在已不再存在。 使用 .on() 注册侦听器。

https://github.com/jquery/jquery/issues/2286

jQuery.swap、jQuery.buildFragment 和 jQuery.domManip 不再可以在 jQuery 对象上访问

这些方法一直仅用于内部使用,并且从未记录过。我们终于使它们私有,以避免混淆。

https://github.com/jquery/jquery/issues/2224
https://github.com/jquery/jquery/issues/2225

动画现在使用 requestAnimationFrame

在支持 requestAnimationFrame API 的平台上,几乎所有平台(IE8 和 IE9 除外)都支持该 API,jQuery 现在将在执行动画时使用该 API。这应该会产生更流畅的动画,并减少 CPU 时间的使用 – 并且还可以节省移动设备的电池电量。

jQuery 几年前尝试使用 requestAnimationFrame,但与现有代码存在 严重的兼容性问题,因此我们不得不将其回滚。 我们认为我们已经通过在浏览器选项卡不可见时暂停动画解决了大多数这些问题。 尽管如此,任何依赖于动画始终以近乎实时运行的代码都在做出不切实际的假设。

.unwrap( selector )

在 jQuery 3.0 之前,.unwrap() 方法不接受任何参数。selector 参数提供了一种指定要删除哪些包装器的途径。

https://github.com/jquery/jquery/issues/1744

某些 jQuery 自定义选择器的速度大幅提升

感谢 Google 的 Paul Irish 的侦探工作,我们确定了一些可以跳过大量额外工作的情况,当在同一文档中使用像 :visible 这样的自定义选择器多次时。 该特定案例现在快了 17 倍!

请记住,即使有了这项改进,像 :visible:hidden 这样的选择器也可能很昂贵,因为它们依赖于浏览器来确定元素是否实际显示在页面上。 在最坏的情况下,这可能需要完全重新计算 CSS 样式和页面布局! 虽然我们通常不阻止使用它们,但我们建议测试您的页面,以确定这些选择器是否会导致性能问题。

https://github.com/jquery/jquery/issues/2042

 

感谢

感谢所有参与本次发布的人员,包括测试、报告错误或提交补丁的贡献者,例如 Chris Antaki, Jason Bedard, Leonardo Braga, Bastian Buchholz, Anne-Gaelle Colom, David Corbacho, Brenard Cubacub, Hamish Dickson, Ben Edelman, Stephen Edgar, elas7, flexphperia, Corey Frang, Xue Fuqiao, Oleg Gaidarenko, Richard Gibson, Michał Gołębiowski, Scott González, goob, Veaceslav Grimalschi, Mu Haibao, Dan Hart, Frederic Hemberger, Nicolas Henry, Daniel Herman, Jon Hester, Victor Homyakov, Winston Howes, Daniel Husar, Essam Al Joubori, Veres Lajos, George Mauer, Richard McDaniel, Amit Merchant, Calvin Metcalf, Dave Methvin, MightyBranch, Nazar Mokrynskyi, Matthew Mueller, Martin Naumann, Alexander O’Mara, Randson Oliveira, Gilad Peleg, James Pearce, PJ, Senya Pugach, Aditya Raghavan, Chris Rebert, Aurelio De Rosa, Gabriel Schulhof, Mike Sidorov, Nick Stefan, Arthur Stolyar, Timo Tijhof, Ben Toews, Thomas Tortorini, Shivaji Varma, Arthur Verschaeve, Rick Waldron, Bin Xin, Imran M Yousuf, Jörn Zaefferer

 

更改

这是自上次官方发布(1.11.3 和 2.1.4)以来的所有更改列表

 

jQuery 和 jQuery Compat 共用

Ajax

  • 始终在 globalEval 中使用脚本注入 (#14757, bbdfbb4)
  • 删除通过 “jQuery#removeProp” 方法进行的 jsonp 回调 (#2323, a2ae215)
  • 删除 ajax 模块对事件的依赖 (4e7f34f)
  • 修复 ajaxSend 中已中止请求的问题 (#1775, 598ed05)
  • 使用锚标签解析 URL (#1875, b091fdb)
  • 修复非默认端口的跨域检测测试 (83b038f)
  • $.post 和 $.get 现在可以接受一个选项对象 (#1986, 89ce0af)
  • 简化一个 ajax 调用并添加说明性注释 (0ac28ed)
  • 使 jQuery#load “type” 字段明确 (4ef120d)
  • 将 “jqXHR.complete” 回调替换为 “always” (97ef1f2)
  • 移除 ajax promise 中的已弃用扩展 (#2084, 9d1b989)
  • 删除 jQuery#each 第二个参数的使用 (a4715f4)
  • 删除 “onunload” 事件处理程序 (a117dd0)
  • 移除 load 事件别名处理的残留 (38a6697)

属性

  • 添加 SVG 类操作 (#2199, 20aaed3)
  • 当属性不存在时返回 null (#2118, aaeed53)
  • 在 select val 钩子中使用选项 val 钩子并简化它 (#1902, f6302b0)
  • 删除不必要的元素 null 检查 (55ac56a)
  • 修复新返回值失败的测试 (5dc4616)
  • 撤销返回非元素时的 null (7632b74)
  • 恢复返回不存在属性时的 null 值 (2905961)

构建

  • 将 Sizzle 更新到 2.0.0 (bcca4f0)
  • 更新 grunt-contrib-jshint (1556c46)
  • 删除 bower.json lint 目标 (285cfbf)
  • 添加 mailmap 条目 (3ec73ef)
  • 更新许可证属性 (#2331, 8e92e1e)
  • 停止使用 bower;使用 npm 作为前端依赖 (#15186, e1949f4)
  • 更新前端依赖 (8356948)
  • 更新 node 依赖,排除 jscs (8e3a0ce)
  • 更新 grunt-jscs-checker 并使用新规则通过 (c869a1e)
  • 更新 requirejs 依赖到 2.1.17 (#2290, a644101)
  • 更新新 grunt jshint 的 source map 选项 (269a27c)
  • bower.json: 移除多余的 `version` 字段 (61e21a4)
  • 修复因 QUnit 更新导致的断言错误 (8b6aeae)
  • 更新 commitplease dev 依赖 (39b7606)
  • 移除已弃用的 JSHint 选项 (34da7d5)
  • 更新 AUTHORS.txt (8f13997)
  • 升级到 commitplease 2.0.0 (5bc1ddc)
  • 更新 QUnit 至最新版本 (1.17.1) (2d5c5d2)
  • 更新版本至 3.0.0-pre (7a607c5)
  • 将测试移动到适当的模块 (fbdbb6f)
  • 修复各种拼写错误 (dc4b914)
  • 加速 Travis 构建 (31f4f8e)
  • 删除构建输出中的空 define({}) (#1768, 2c1b556)
  • 移除 npm 作为依赖 (b92acf7)
  • 升级到 grunt-bowercopy 1.0.0 (323e82c)
  • 移除未使用的 Sizzle 测试文件 (8d11310)
  • 修复 AMD 模式下的测试 (6051609)
  • 将所有外部库移动到 external 目录 (c5d9d88)
  • 考虑 Sizzle 版本中的版本标签 (#1939, 78ac753)
  • 更新 node 依赖 (9101704)
  • Sizzle 版本标签必须以破折号开头 (d6c97ab)
  • 不要假定浏览器环境;在 Node 中使用 jsdom 进行烟雾测试 (#1950, 76df9e4)
  • 移除版权声明中的日期 (66e1b6b)
  • 指定提交消息中有效的组件 (0c9d018)
  • 忽略 npm install 的测试依赖 (35f8e15)
  • 将 Sizzle 更新到 1.11.1 并包含许可证 (c0b23e2)
  • 更新 Sizzle (#2042, #1969, 3a0dd5a)
  • 更新 grunt-bowercopy (712e78c)
  • 更新许可证 (4f776e5)
  • 使 Wrap 组件名称状态标准化 (a4133ff)
  • 再次更新 native-promise-only (f5aa89a)
  • 将 grunt/npm 任务重新排列为 build/dist/test 模式 (bb928bd)
  • 更新 native-promise-only (0065e1f)
  • 稍后更新 sinon (#2160, 98c25b7)

Callbacks

核心

  • 返回空数组而不是 null 用于 parseHTML(“”) (#1997, 4116914)
  • 在 jQuery.parseHTML 中使用 document.implemenation.createHTMLDocument (58c2460)
  • 遵循 AMD 规范来定义 (892625b)
  • 在 $(“#”) 上抛出错误,而不是返回 0 长度的集合 (80022c8)
  • 允许 init 接受用于 migrate 的替代根 jQuery (#2101, 7a6931d)
  • 移除不必要的 createHTMLDocument 支持测试 (5923282)
  • 将空字符串传递给 createHTMLDocument 以安抚 IE (31c7d7f)
  • 恢复添加 createHTMLDocument。感谢 Safari 8。(b779831)
  • 更新测试的 jsdom,移除过时的解决方法 (#2153, 06f6cd1)
  • 重新引入 parseHTML 中的 createHTMLDocument;Safari 8 遗漏了 (cfe468f)
  • 标准化 indexOf 比较 (53aa87f)
  • 移除自定义 ready 事件 (#2264, c252c5f)
  • 始终使用本地引用访问() (2fb719e)
  • 移除已弃用的 context 和 selector 属性 (#1908, 0ea8c32)
  • 移除节点上的 isArraylike 检查 (#2238, 436f0ae)
  • 添加对带连字符的元素的支持 (534f130)
  • 使用 window.setTimeout 和朋友而不是全局等效项 (#2177, 219c749)
  • 移除 size 和 andSelf 方法 (#1749, f110360)
  • 移除 strundefined 变量 (29838b6)
  • 使 jQuery 对象可迭代 (#1693, bb026fc)
  • 添加对 isArrayLike 中 iOS JIT 错误的解决方法 (#2145, 1541664)
  • 测试 intro.js 中的所有工厂用例 (#2181, ab40725)
  • 切换到仅使用 window.setTimeout 等模块 (842958e)
  • 对齐分支:移除未使用的变量,添加注释 (f6de5a9)
  • 简化“each”样式表迭代测试 (fcb6c4d)
  • 简化并加速 .each (eeda11c)
  • 组织 prop 和 attr 代码以保持相似 (5153b53)
  • 更改 jQuery.each 和 jQuery#each 签名 (#2090, 2380028)

CSS

  • CSS:Event: 简化本机方法签名 (85577a3)
  • 修复“理智检查”测试 (995f707)
  • 移除非功能性的负边距单元测试 (4ab7431)
  • 添加针对 issue gh-1764 的集成测试 (8887106)
  • 移除对 getDefaultComputedStyle 的使用 (#15227, 274feb5)
  • 为 html 和 body 使用预定义的显示 (a772418)
  • 更正注释中的错别字 (7e09619)
  • 移除注释中多余的“到数字” (895ea68)
  • 修复 :visible/:hidden 选择器对于带有内容的内联元素 (#2227, 79bcb29)
  • 支持任何适用单位的相对调整 (#1711, 9b03f6d)
  • 当 offsetWidth 或 offsetHeight 为零时,元素被隐藏 (#10406, #13132, 10399dd)
  • 忽略 show()/hide()/etc. 中的 CSS 级联 (#1767, #2071, 86419b1)
  • 修复 Android 2.3 中的 pixelMarginRight 支持测试 (cdfc2d0)
  • 清理 reliableMarginRight 中的内存泄漏 (#1795, 7d15b4d)
  • 不要缓存未识别的 CSS 属性名称 (#2015, d471842)
  • 不要命名匿名交换函数 (0019a46)
  • 使 getStyles 函数更具可读性 (3a0d582)
  • 解决 IE11 全屏尺寸错误 (#1764, 90d828b)
  • 添加针对负边距和定位的单元测试 (1b932bb)
  • 简化“defaultDisplay”模块 (c62486f)
  • 使 .css(“width”) 和 .css(“height”) 返回小数 (#1724, b60b26e)
  • 不要暴露 jQuery.swap (#2058, bb4d888)
  • 改进解释 IE11 全屏错误的注释 (8e4aac8)

数据

  • 在驼峰命名时不要包含数字 (#1751, 2862a07)
  • 始终对 .data() 中的键进行驼峰命名 (#2257, 0e79098)
  • 在 acceptData 测试中使用 PDF 对象而不是 Java applet (#1938, 087d280)
  • 驼峰命名不应忽略大小写 (#2070, 172cad8)

Deferred

Dimensions

文档

  • 1.x-master 分支 -> compat 分支;2.x 分支 -> master 分支 (758fd6c)
  • 更正 README.md 中的 grunt 命令 (#1850, 9d6beac)
  • 删除 README 中的冗余说明 (#2359, 3c92770)
  • 澄清自定义构建说明 (a3779bc)

Effects

  • 添加 jQuery.Animation 的单元测试 (b3b2d6c)
  • 重新引入 requestAnimationFrame 的使用 (#15147, 72119e0)
  • 添加 Animation 和 Tween 中 jQuery.easing._default 的测试 (6d7ef56)
  • 使用 jQuery.easing._default 设置默认缓动 (#2219, 5f2ea40)
  • 添加 jQuery.Tween 的单元测试 (cdaed15)
  • 改进 raf 逻辑 (708764f)

活动

  • 移除 preDispatch 钩子并简化“simulate”签名 (3655c4e)
  • 移除 jQuery#on 方法的虚假处理程序参数的保护 (fac67a9)
  • 添加 support 注释 (9db9316)
  • 更正 support 注释 (361a0d5)
  • HTML5 drop 事件从 MouseEvent 继承 (#2009, d7e5fce)
  • 完全清理单元测试中的事件 (4467ed6)
  • 应该忽略空的命名空间,不会产生任何影响 (8653068)
  • 移除过时的 originalEvent hack (6df669f)
  • 从 jQuery.Event.simulate 中移除假的 originalEvent (#2300, 7475d5d)
  • 修复 iframe 中 scrollTop/Left 的 window 错误 (#1945, d21edb5)
  • 移除已弃用的事件别名 (#2286, 0705be4)
  • 添加关于 Chrome 中 mouseenter 错误的说明 (a5e1c9b)
  • 恢复 jQuery.Event 原型上的 `constructor` 属性 (#15090, b807aed)
  • 将 detail 属性复制到 jQuery.Event 的原生事件 (#1867, d9ed166)
  • 移除 on 方法的内部参数 (04a2969)
  • 规范化拖动事件中的鼠标事件属性 (#1925, 97cf528)
  • 为 focus(in | out) 提供详细的注释,并重命名 support 属性 (c074006)
  • 移除事件方法上的冗余保护 (#2047, a873558)

操作

其他

  • 停止支持旧版浏览器;更新支持注释 (740e190)
  • Need for speed 被 9ad6e7e 移除 (ff928f5)
  • Mac OS 现在是 OS X,感谢 @xfq (d30c482)

Offset

  • 移除 offset getter 中的 ownerDocument 检查 (#2115, 6176567)
  • 为了浮点错误,四舍五入 offset 值 (#2147, 62ae2d0)
  • 为断开连接/隐藏的元素返回零 (#2310, 40dcc76)
  • 修复 .offset() 以正确处理 ShadowDOM (#1784, 1617479)
  • 考虑滚动来计算位置 (#1708, 2d71594)
  • 不要在 Android 2.3 和 4.0 中运行 scrollTop/scrollLeft iframe 测试 (#1981, 0c46643)
  • 为了避免 IE8-11 中的错误,在 getBoundingClientRect 之前返回 (0e4477c)
  • 添加隐藏元素 + scroll 的测试 (b041242)
  • 简化 jQuery#offsetParent 方法 (74ae544)

README

  • 修复 tile 中的标点符号 (df62159)
  • 修复小样式问题。感谢 @MightyBranch! (edfc94d)
  • 更新 Homebrew 网站地址 (b410b15)
  • 各种文本修复 (31b63fc)
  • 更新已弃用模块的描述 (1d75273)
  • 改进构建说明 (2e9c1ea)

发布

  • 更新 AUTHORS.txt (e905dcd)
  • 移除复制 jquery-latest 文件的操作 (c34ed46)
  • 正确设置实际发布时的 dist 远程 (c44dd77)
  • bower.json 实际上是从头开始生成的 (61224f5)
  • 将文件分发到分发仓库 (#1869, #1673, #2045, 26eca14)
  • dist 可以在测试期间运行 (aae998b)
  • 将 dist 推送到与项目相同的远程 (1ba45fc)
  • 从压缩文件的所有副本中移除 sourcemap 注释 (#1707, a76c781)
  • 修复 CDN 存档创建 (#1940, e0673df)

选择器/Sizzle

  • 添加 jQuery.uniqueSort;弃用 jQuery.unique (#2228, e1090c3)
  • 添加 jQuery.unique() 别名的测试 (add85af)
  • 移除标识符标记中的“#”异常 (86e62d8)
  • 更新到 2.1.1 (7602dc7)

支持

  • 重新组织浏览器顺序,添加 Safari 8 (43faf6d)
  • 更正 iOS 8 支持测试结果,重新排列条目 (ce308e2)

Tests

  • 更新 QUnit (6748ba3)
  • 为 QUnit 1.16 兼容性进行小更新 (26276a3)
  • 适应 QUnit HTML 报告页面的更改 (3c13f4c)
  • 增加 QUnit 超时时间 (ff18d8e)
  • 尝试解决几个样式指南难题 (906caeb)
  • 更正匹配 Safari 8 的正则表达式中的一个拼写错误 (c17543f)
  • 添加 Microsoft Edge 结果(来自 Windows 10 build 10130)(8e111df)
  • 从用户代理中删除 Edge 版本 (5a1217e)
  • 删除 test/data/ua.txt (#2398, e831856)
  • 修复与新的 :visible 行为一致的测试 (16713fb)
  • 将当前版本的 node 和 iojs 添加到 travis 配置 (bd9a138)
  • 为 IE 扩大 CSS 相对调整容差 (e22ef5d)
  • 修复针对向下取整浏览器的 CSS 相对调整测试 (48be675)
  • 降低检查舍入误差 (a44cfa0)
  • 使 HTML 套件的顶部符合样式指南 (8356281)

Wrap

  • 支持 .unwrap( selector) 以进行选择性解包 (#1744, 7b09235)

 

jQuery 3.0 Only

Ajax

  • 删除对 IE6/7 的解决方法 (e519098)
  • 简化 jQuery.parseXML 方法 (5a0867d)

构建

  • 为 Node 和 iojs 测试使用不同版本的 jsdom (#2266, 5c3101f)
  • 重构 Node 烟雾测试 (9c8a3ec)
  • 将 JSHint 指令移动到 .jshintrc 文件 (15a609f)

CSS

  • 在 css/support 中节省 20 个字节 (45ec73f)
  • 合并双重 if 语句为一个 (7855a1a)
  • 恢复用于获取像素的 .css(‘width’) 等的 hack (3747cc6)

数据

  • 减少几个字节 (6f65f5f)
  • 避免对节点使用 delete (#1728, 95fb798)
  • 避免在 expando 属性中使用非字母数字字符 (0cdec79)
  • 更新 element[expando] 缓存 (222ac3a)
  • 将元素缓存移动到 element[expando] (#1734, d702b76)
  • 删除一些未使用的代码 (764dc94)
  • 在没有更多数据时删除 expando (#1760, 56bb677)
  • 加速 $.fn.data() 的驼峰式键 (#1941, 72c4a06)
  • 恢复在 cleanData 中删除私有数据的操作 (#2127, 332fd94)
  • 删除依赖于 applet 的测试 (#1938, 95c0a10)

文档

  • 添加关于 Sizzle 在 compat 分支上不可排除的说明 (#2184, 062b526)
  • 修复 README 中的大写 (b50e0f2)

操作

  • 容忍 XMLNode host 对象输入到 getAll (#15151, 1ae025e)
  • 检查 Android 4.0-4.3 的状态丢失,如果设置了名称 (1bbb678)

其他

  • 调整注释和文档以删除 IE * 杂项:更新所有对 bugs.jquery.com 的引用 (#1681, 3e89a53)
  • 移除测试中多余的 -moz-box-sizing (e81b258)

Offset

  • 简化了一个条件 (4287442)
  • 不要在移动 Safari 中运行 scrollTop/scrollLeft iframe 测试 (4ab8603)

README

  • 添加 selector-native.js 链接。感谢 @randsonjs! (cfe2eae)

Tests

  • 删除与 compat 分支兼容的尾随逗号 (dc8ba6a)

 

jQuery Compat 3.0 only

Ajax

  • 添加支持注释并修复代码风格问题 (e38a94a)
  • 仅在 TestSwarm 的 IE8 中运行 PATCH 测试 (#1994, 2524da0)
  • 将解释性注释移动到适当的位置 (04fc801)
  • 在 IE9+ 中对所有非本地请求使用本机 XHR (#1684, 61f812b)
  • 在注释中将 Spartan 重命名为 Edge (8d88cd5)
  • 修复 IE8 的 XHR 回退逻辑 (bd699cb)

属性

  • 使用 typeof 检查 getAttribute 方法 (075da30)
  • 不要在 IE8 中测试 SVG CSS 类操作 (57fb2dc)
  • 修复 IE8 问题 (f2bcf87)

构建

  • 指向 compat 分支的文件,而不是 master (b7663ea)
  • 在构建的文件中的横幅中添加“jQuery Compat” (8cd6875)
  • 1.x-master -> compat (2912ddd)
  • 将“timers_ie.js”文件添加回仓库 (31e6697)
  • 将“+compat”附加到标签版本和 jQuery.fn.jquery (#2269, d18b645)
  • 修正缩进问题 (d0f27a7)

Callbacks

  • 更改损坏的 URL 为 wayback 上的 URL (e4cbc97)

核心

  • 使 intro.js 中的代码与 master 对齐 (fe2a584)

CSS

  • 添加对 hack 的支持测试,用于 .css(‘marginRight’) 等。(25bc680)
  • 修复 IE8 中的获取大写 alpha 透明度 (#1705, c5e8e12)
  • 简化 css getter 的 hack,用于计算值 (dac716c)
  • 修复 amd 的依赖顺序 (e185aa3)

数据

  • 使用 removeAttribute 在 cleanData 中绕过 Chrome 错误 (#1664, 9d1d90e)

Deferred

  • 通过新的 catch 测试 (203979d)

文档

  • 将 1.x 重命名为 compat (8992ac8)

Effects

  • 移除测试中的不必要的操作 (13040b6)
  • 修复 IE8 中的失败测试 (fe6afa8)
  • 修复测试 (29561bc)

活动

  • 添加对 data 模块的引用 (2866da9)
  • 修正未完成的注释 (ac23f91)

操作

  • 不要在 IE8 中测试 data-URI 与 script 元素 (503e545)
  • 修复 noCloneEvent 功能检测中的 IE8 内存泄漏 (#1840, faf295a)
  • 更新 html5shiv 元素 (#15241, a953389)
  • 将 IE8 列入黑名单,禁止运行带有 tag-hyphenated 元素的测试 (87bb713)

其他

  • 更新所有对 bugs.jquery.com 的引用 (#1681, 49c720e)

Offset

  • 允许 offset setter 对断开连接的元素抛出异常 (#2114, dc49f62)
  • getBounding 在 IE8 中不返回 width/height。修复测试。(3b1de11)
  • 修复 IE8 的 iframe scrollTop/Left 测试 (d632699)
  • 修复 IE8 和 iPhone 的 iframe scrollTop/Left 测试 (62a333e)
  • 为了 IE8 的缘故,恢复使用 jQuery.contains (仅限 compat) (6df3990)
  • 无需检查 ownerDocument (523de77)

Tests

  • 恢复 IE8 解决方法(Sinon 定时器用于 IE 和 HTML5 shiv)(0b07c65)

Traversing

  • 简化 jQuery#contents 方法 (7230df1)