jQuery 1.4.3 发布

发布日期: 作者:

jQuery 1.4.3 现已发布! 这是基于 jQuery 1.4 的第三个次要版本,修复了一些错误并带来了一些不错的改进。

我要感谢以下社区成员,他们为该版本提供了补丁和意见: Anton M.、Justin Meyer、Colin Snover、Ryan Tenney、Louis-Rémi Babé、David Petersen、Rick Waldron、Dave Reed、John-David Dalton、temp01、Heungsub Lee、J. Ryan Stinnett、Robert Katic、Juriy Zaytsev、James Burke、Jeffery To、Carl Fürstenberg、Jacob Wright、Jeff Robinson、Christian C. Salvadó、Andrée Hasson、Jason Webster、Dave Furfero、Adam Sontag、Travis Hardiman、DBJDBJ 和 Ben Alman。

以及以下 jQuery 团队成员:Scott González、Brandon Aaron、Yehuda Katz、Dave Methvin、Karl Swedberg、Paul Irish、Ralph Whitbeck、Jörn Zaefferer、Richard Worth、Doug Neiner 和 Mike Alsup。

下载

与往常一样,我们提供两个版本的 jQuery,一个压缩版本(我们现在使用 Google Closure Compiler 作为默认的压缩器)和一个未压缩版本(用于调试或阅读)。

您可以随意将上述 URL 直接包含到您的网站中,并将获得快速加载的 jQuery 所带来的全部性能优势。

此外,您还可以直接从 Google 的 CDN 加载 URL

一般改进

我们在 jQuery 的内部和我们用于开发的指南方面做了一些改进。

JSLint

首先,jQuery 现在通过了 Douglas Crockford 的 JSLint 工具。 我们已将他的工具集成到我们的工作流程中(从 Github 中检出 jQuery 并运行“make lint” 将显示结果) - 使我们能够掌握可能的回归。

我们对 JSLint 做了一些细微的更改以适应我们的特定开发风格,并在 jQuery 核心风格指南 中记录了结果。

模块化

我们还删除了 jQuery 源代码中存在的许多模块间依赖关系。 这样做可以提高使用源代码副本的 jQuery 时带来的灵活性。 例如,您现在可以使用脚本加载器(如 LABjsRequireJS)来动态加载各个 jQuery 模块(例如,核心、支持、数据和事件)。

此外,此更改使您不再需要构建 jQuery 的副本才能运行 jQuery 测试套件。 这极大地改善了我们的开发工作流程 - 使我们能够快速更改 jQuery 并测试结果,而无需(相对)缓慢的构建步骤。

新功能

所有新功能和更改可以在 jQuery 1.4.3 的 API 文档 中找到。

CSS 模块重写

几乎整个 CSS 模块都已重写,完全专注于可扩展性。 您现在可以编写自定义 CSS 插件,这些插件扩展了由 .css().animate() 提供的功能。

例如,这是由 Louis-Rémi Babé 编写的利用新功能的插件:jQuery Rotate

该插件提供了一种跨浏览器的方式来设置和动画 DOM 元素的旋转,只需使用传统的 jQuery 方法,如下所示

$('#myDiv').css('rotate', 90);
$('#myDiv').animate({rotate: 180});

在重写过程中,我们将包含在 jQuery 中的功能分解为两个非常清晰的路径:获取和设置元素的 .style 属性(通过 jQuery.style 完成)以及获取元素的当前计算样式信息(通过 .css() 和 jQuery.css 完成 - 请注意,jQuery.curCSS 不再使用,并且已弃用)。 .css() 提供的功能同时使用 jQuery.style 和 jQuery.css 方法。

进行此更改使计算样式检索的速度有所提高,也产生了高达 20% 的速度提升。

jQuery 1.4.3 .css() Getting a Value

所有性能测试的原始数据可以在 以下 Google Doc 电子表格 中找到。 所有测试都可以在 jQuery 源代码存储库 中找到。

数据

数据模块已进行了一些改进,大大提高了其效用。

HTML 5 data- 属性

首先,jQuery Metadata 插件提供的主要功能已移入核心。 HTML 5 data- 属性 将自动被拉入 jQuery 的数据对象中。

例如,给定以下 HTML

<div data-role="page" data-hidden="true" data-options='{"name":"John"}'></div>

以下所有 jQuery 代码都将起作用。

$("div").data("role") === "page";
$("div").data("hidden") === true;
$("div").data("options").name === "John";

请注意,字符串保持不变,而 JavaScript 值将转换为其关联值(包括布尔值、数字、对象、数组和 null)。

data- 属性在第一次访问数据属性时被拉入,之后不再访问或修改(所有数据值随后在 jQuery 中内部存储)。

JavaScript 对象

对 JavaScript 对象(或更准确地说,任何不是 DOM 节点的对象)使用 .data() 时,进行了一些更改。 首先,每当您在 JavaScript 对象上设置数据时,数据都会直接在对象上设置 - 而不是进入内部数据对象存储。 此外,附加到对象的事件被放置在一个新的“__events__”属性中,该属性实际上是一个函数。 这样做是为了允许事件直接附加到对象,并在收集对象时被垃圾回收,并且不会被 JSON 序列化器序列化。 这些更改应该使 jQuery 的数据和事件系统在 JavaScript 对象上更加有用。

活动

jQuery 已经有了 setData 和 getData 事件(在通过 .data() 方法设置或获取数据时广播这些事件) - 重写这些方法可以覆盖这些功能的默认行为(也就是说,您可以返回不同的值或阻止设置值。 请注意,在 jQuery 1.4.3 中,这些事件不再冒泡(允许它们冒泡在大多数应用程序中被证明过于昂贵)。

在 1.4.3 中,我们引入了一个名为 changeData 的新事件。 当使用 .data() 更改任何单个数据属性时,将触发此事件。 例如

var user = new User();
$(user).bind("changeData", function( event, name, value ) {
  $("#user").find("#" + name).val( value );
});

changeData 事件被新的 jQuery 数据链接 插件广泛使用。 它使数据 API 能够同步设置 JavaScript 对象属性和表单字段。

其他

在 1.4.3 中,对 .data() 进行了一个小 API 更改:调用 .data(Object) 不再完全替换数据对象,而是扩展现有对象,并将未指定的值保留在原处。 我们发现,根据许多令人困惑的错误报告,这是预期的结果。

遍历

几乎所有主要遍历方法的性能都得到了显著提高。 .closest()、.filter()(以及因此,.is())和 .find() 都得到了极大的改进。

这些改进很大程度上是由于更多地使用了浏览器的 querySelectorAll 和 matchesSelector 方法(如果存在)。 jQuery 项目要求浏览器添加新的 matchesSelector 方法(编写测试套件、与供应商交谈并提交错误),整个社区现在都能享受到出色的性能优势。

jQuery 1.4.3 .closest() Performance

jQuery 1.4.3 .filter() on a Single Element

jQuery 1.4.3 .find() on an element

所有性能测试的原始数据可以在 以下 Google Doc 电子表格 中找到。 所有测试都可以在 jQuery 源代码存储库 中找到。

上述性能结果专门针对 jQuery 代码中的三个非常常见的情况:在单个 DOM 节点上使用 .closest(),在单个 DOM 节点上使用 .filter()(或 .is()),以及在 DOM 元素上使用 .find()(例如,$(“#test”).find(“something”))。

请注意,显示的浏览器是实际支持 querySelectorAll 或 matchesSelector 的浏览器 - 不支持这些方法的现有浏览器将继续具有相同的性能特征。

Ajax

已经发布了一些新的 Ajax 功能,这些功能应该可以帮助插件作者和构建渐进增强型应用程序的人员。

引入了一个新的 jQuery.readyWait 属性,当添加时,该属性会延迟 ready 事件的执行。 这应该由希望延迟 ready 事件发生到指定时间的插件使用。 例如,RequireJS 已经实现了对该属性的使用,允许您加载在 ready 事件触发之前应该处理的依赖项。 每当某个项目完成加载时,您最终应该调用 jQuery.ready(true)(如果所有依赖项都已完成加载 - 并且 DOM 已准备就绪 - 那么 ready 事件将触发)。

我们还添加了一个新的支持属性:jQuery.support.ajax。 简而言之,它在能够处理“Ajax”(XMLHttpRequest)请求的浏览器中返回 true。

活动

.bind(“click”, false) 和 .unbind(“click”, false)

绑定一个什么也不做的函数(阻止默认操作并停止事件冒泡)的便捷快捷方式。

.click(data, fn)

所有内置的事件方法(如 .click())现在都接受数据作为初始参数(就像 bind 方法一样)。

event.namespace

事件对象的属性,包含传递给 .trigger() 的事件命名空间。

效果

.show(speed, easing, callback) 等。

所有动画方法现在都支持缓动。 就像 .animate() 如何支持缓动参数(供缓动插件使用)一样

jQuery.fx.interval

公开所有效果触发速率(以毫秒为单位 - 默认值为 13)的新属性。 使此数字更小将使一些浏览器(如 Chrome)中的动画更平滑,但代价是 CPU 占用率更高。

其他

jQuery.type

确定对象的内部 JavaScript [[Class]]。 使用许多不同的方面来确定对象的精确返回值。 逻辑可以确定如下

  • 如果对象未定义或为空,则分别返回“undefined”或“null”。
  • 如果对象具有等效于浏览器的内置对象的内部 [[Class]],则返回关联的名称。 (有关此技术的更多详细信息。)
    • jQuery.type(true) === “boolean”
    • jQuery.type(3) === “number”
    • jQuery.type(“test”) === “string”
    • jQuery.type(function(){}) === “function”
    • jQuery.type([]) === “array”
    • jQuery.type(new Date()) === “date”
    • jQuery.type(/test/) === “regexp”
  • 所有其他内容将返回“object”作为其类型。

jQuery.isWindow

用于确定对象是否可能是窗口的简单方法。

jQuery.isWindow(window); // true

此外,我们现在使用本机 Array.isArray 方法来进行 jQuery 的 isArray(如果可用),并且我们使用浏览器提供的本机 String trim 方法(同样,如果可用)。 对 jQuery.trim 做了一些性能改进,详见 以下主题

测试

jQuery 1.4.3: Passing 3621 Tests in All Browsers

jQuery 1.4.3 在所有支持的浏览器上通过了 3621 个测试。我们在 Firefox 4 上 100% 通过,并且在 IE 9 上几乎通过(我们发现了两个错误,提交了报告,其中一个已经修复了)。

jQuery 社区更新 10/12

发布日期 作者

本周对 jQuery 来说是一个重要的一周,因为我们的 第二个候选版本 jQuery 1.4.3 已经发布并可供测试。我们要感谢所有提交反馈和错误报告的人,你们的反馈和报告对我们使这个版本尽可能稳定起到了很大的帮助。请记住,如果你发现了一个你想要报告的错误,你可以通过我们的 错误跟踪器 轻松地提交。

我们的新错误跟踪器

关于错误跟踪器,我想请 Colin Snover 向大家宣布关于我们的错误跟踪系统的信息

今天,我们为 jQuery 核心引入了新的错误跟踪系统。除了速度更快、使用更方便之外,新的 Trac 还拥有许多很棒的新功能,我们希望您能喜欢它们。我们尽力确保最终用户和开发人员都能获得比以前服务更好的体验。

最重要的改变是增加了投票功能,这将帮助团队优先处理哪些错误和新功能对 jQuery 社区成员来说是最重要的。到目前为止,还没有办法获得对人们认为哪些问题最重要的具体指标,因此我们对这个功能非常兴奋,并希望您能使用它来帮助我们了解您最希望在库中看到什么。

我们添加了一个无需登录的错误报告模式,允许任何人在没有进行注册的情况下提交错误报告。我们还对报告流程进行了大幅改进,因此在提交工单时,只需要提供摘要、描述、版本号和问题类型。

新的 Trac 的另一个很棒的新功能是更可定制的通知系统,允许任何人都可以选择何时收到关于工单更改的电子邮件。此功能还引入了“关注”工单的功能,因此您可以随时了解您关心的工单,而无需定期访问错误跟踪器。

对于 jQuery 开发人员来说,新的错误跟踪器提供了一系列改进。最明显的是,我们现在能够建立交叉引用,因此我们知道哪些问题会阻塞其他工单,哪些问题会被其他工单阻塞。我们还集成了对 GitHub 的支持,因此对 jQuery GitHub 代码库的更改会自动反映在 Trac 的时间线和工单系统中。最后,对工单工作流程进行了一些更改,这样就可以更快地解决重复的工单,并且由提交者放弃的工单会自动关闭,以确保无效报告的数量保持在较低水平。

我们对添加到新错误跟踪器中的所有内容都感到非常兴奋,我们希望您今天能看一看!

我们鼓励用户在提交新错误报告时登录,因为这将允许您查看和使用一些新改进的功能,例如投票小部件以及关于您错误报告的后续操作的通知。请告诉我们您的想法!

社区支持

我们社区的一大优势是我们总是乐于帮助那些刚开始使用 jQuery 的人。

本着这种精神,我们想邀请有使用 jQuery 经验的成员加入 jQuery 论坛 - 这是一个很好的地方,可以帮助初学者解决他们可能遇到的关于 jQuery 的问题,或者帮助那些在使代码正确运行方面遇到一些困难的成员。要开始使用,您只需要创建一个新的论坛帐户,或者使用您的 Google、Yahoo 或 Facebook 帐户登录。

关于 jQuery 和 jQuery UI 新教程的号召

jQuery & jQuery UI 文档网站是了解如何开始使用 jQuery 的极佳信息来源,但我们也希望为社区提供指向教程的链接,这些教程可能会更深入地探讨特定主题。

如果您喜欢撰写有关 jQuery 或 jQuery UI 的文章,我们想邀请您撰写一个关于特定方面、功能或组件的最新教程,然后我们可以与社区的其他成员分享。最好的教程可能会被添加到我们官方推荐的教程页面 这里

如果您想提交教程供审查,请随时与我们联系。

jQuery 大会

将在本月 16 日在波士顿举行 官方 jQuery 大会,所有参加大会的 jQuery 团队成员都期待与您在那儿见面。如果您不能参加,别担心!无论您身在何处,您都可以注册参加 jQuery 在线峰会,该峰会将于 11 月 16 日至 17 日举行,演讲嘉宾包括 John Resig、Paul Irish、Rey Bango 等等。

感谢大家,敬请关注 jQuery 团队的更多更新!

jQuery 1.4.3 候选版本 2 发布

发布日期 作者

jQuery 1.4.3 候选版本 2 发布!这是 jQuery 1.4.3 的第二个候选版本。代码是稳定的(在所有支持的浏览器中通过所有测试),功能完整的(我们不再接受该版本的任何新功能),需要在实际应用程序中进行测试。

获取代码

注意:如果您使用的是 jQuery 1.4.3rc2 并且遇到了错误,请确保您使用的是代码的普通版本,这将使您更容易找到错误发生的位置。

我怎样才能帮忙?

首先,尝试将上面的 jQuery 1.4.3rc2 的非压缩版本放入您正在运行的实际应用程序中。如果您遇到异常或出现奇怪现象,请立即登录错误跟踪器并 提交错误请务必提到您在 jQuery 1.4.3rc2 中遇到了错误!

我们将密切关注收到的错误报告,并努力解决 jQuery 1.4.2 和 jQuery 1.4.3 之间的任何不一致。

有关 1.4.3 版本的更多详细信息,请参见之前关于 jQuery 1.4.3rc1 的文章。

jQuery 1.4.3 候选版本 1 发布

发布日期 作者

jQuery 1.4.3 候选版本 1 发布!这是 jQuery 1.4.3 的第一个候选版本。代码是稳定的(在所有支持的浏览器中通过所有测试),功能完整的(我们不再接受该版本的任何新功能),需要在实际应用程序中进行测试。

获取代码

注意:如果您使用的是 jQuery 1.4.3rc1 并且遇到了错误,请确保您使用的是代码的普通版本,这将使您更容易找到错误发生的位置。

我怎样才能帮忙?

首先,尝试将上面的 jQuery 1.4.3rc1 的非压缩版本放入您正在运行的实际应用程序中。如果您遇到异常或出现奇怪现象,请立即登录错误跟踪器并 提交错误请务必提到您在 jQuery 1.4.3rc1 中遇到了错误!

我们将密切关注收到的错误报告,并努力解决 jQuery 1.4.2 和 jQuery 1.4.3 之间的任何不一致。

需要注意的地方

自 1.4.2 发布以来,jQuery 中的一些区域发生了重大变化

  • .css() 和相关的 css 处理方法都进行了彻底的修改。
  • 确定元素可见性和动画代码中显示切换的逻辑。
  • 大部分遍历逻辑都得到了改进和更改(is、filter、closest、find)。

关于该版本的完整信息即将发布 - 现在我们只需要您的帮助来捕获回归。

有了您的反馈,我们应该能够发布一个稳定的版本。现在我们希望在下一个周末的波士顿 jQuery 大会之前发布最终的 1.4.3 版本。感谢您帮助审查 jQuery 1.4.3rc1!

新的官方 jQuery 插件提供模板、数据链接和全球化

发布日期 作者

随着 jQuery 项目的不断发展,开发人员社区的需求也在不断增长。作为一个项目,我们专注于构建尽可能好的功能,并以可靠且开放的方式提供这些功能。与大多数开源项目一样,我们能够提供的软件在很大程度上要归功于许多志愿者的慷慨捐赠,他们贡献了时间和编码技能,使 jQuery 和 jQuery UI 成为现今使用最广泛的 JavaScript 库之一。

在 3 月份,我们在 MIX 2010 上宣布微软已经承诺通过代码贡献和资源来支持 jQuery 项目。不久之后,微软发布了他们的第一个 jQuery 插件供公众审查,该插件为 jQuery 社区提供了客户端模板功能。紧随其后的是他们的第二个插件 jQuery Data Link,它提供了数据同步功能,最近还发布了 jQuery Globalization 插件,该插件为 JavaScript 应用程序提供了超过 350 种文化的全球化信息,包括苏格兰盖尔语、弗里斯兰语、匈牙利语、日语和加拿大英语。

在七个月的开发过程中,jQuery 和微软团队紧密合作,确保代码符合 jQuery 项目指定的最佳实践,并满足 jQuery 社区的特定需求。我们还确保贡献的任何代码都将根据与 jQuery JavaScript 库相同的非限制性许可条款提供给 jQuery 社区。

官方 jQuery 插件

今天,我们很高兴地宣布,以下微软贡献的插件——**jQuery Templates 插件**、**jQuery Data Link 插件**和**jQuery Globalization 插件**——已被接受为 jQuery 项目的官方支持插件。作为支持的插件,jQuery 社区可以确信这些插件将继续得到增强,并与未来版本的 jQuery 和 jQuery UI 库兼容。

jQuery Templates 和 jQuery Datalink 插件将由 jQuery 核心团队管理,而 jQuery Globalization 插件将成为 jQuery UI 项目的一部分,从而为我们的富 UI 库提供扩展的全球化功能。此外,jQuery Templates 插件中的功能将从 1.5 版本开始直接集成到 jQuery 核心库中。

文档和教程

为了帮助您立即使用这些插件,我们提供了 API 文档和教程,帮助您快速掌握这些新技术。

API 文档

教程

可供下载

新插件的源代码可以在 Github 上找到,我们鼓励社区评估和增强其功能。新插件现已可供立即下载,代码可在此处找到:

jQuery Templateshttp://github.com/jquery/jquery-tmpl
jQuery Datalinkhttp://github.com/jquery/jquery-datalink
jQuery Globalizationhttp://github.com/jquery/jquery-global

新的贡献方式

我们感谢 微软 对 jQuery 项目的承诺,以及他们为 jQuery 库提供的全新、令人兴奋的功能。这对两个团队来说都是一次令人愉快的经历,为未来合作奠定了基础,并创造了一条新的途径来满足 jQuery 社区的需求。

请务必阅读微软的联合公告,该公告概述了该项目的历史以及这些贡献对微软和 jQuery 社区的重要性。

jQuery Templates、Data Link 和 Globalization 成为官方 jQuery 插件 – Scott Guthrie,微软开发者部门公司副总裁

jQuery Templates 现已成为官方 jQuery 插件 – Boris Moore,微软

jQuery Templating 在实际应用中 – James Senior,微软

Web Camps TV #5 – 微软为 jQuery 贡献代码!
– Channel 9 视频

西雅图 jQuery 开放空间和与 John Resig 的黑客攻击 - 7 月 5 日

发布于 作者

7 月 5 日星期一,John Resig 将参加西雅图 jQuery/JavaScript 社区聚会,地点在亚马逊位于南湖联盟的全新 Van Vorst 会议中心,参加一个下午的学习、开放空间、黑客攻击以及当然还有比萨派对!

活动从下午 1 点开始,首先是简短的主旨演讲和对开放空间技术的解释,然后小组将自行组织成更小的会议,以开放空间风格进行,直到下午 6 点。

我们将提供大量比萨、饮料和社交空间,以便与志同道合的开发人员会面,因此,欢迎您来参加,与太平洋西北地区的顶级前端和界面开发人员会面、用餐、学习和玩耍。主题适合从 jQuery 和 JavaScript 初学者到高级程序员。

此精彩活动免费提供,但您需要注册才能参加。请尽快获取您的门票。

微软在 jQuery 中的数据链接提案。征求反馈意见。

发布于 作者

微软 已向 jQuery 项目提交了第二份提案,概述了一个允许在对象中将属性彼此链接的插件。这种被称为“数据链接”的新插件将允许对一个对象属性所做的更改影响第二个对象的属性。该插件利用 jQuery 的“特殊事件”API 创建一个新的事件,该事件将在绑定对象的属性发生更改时触发。这将允许开发人员以以下方式链接属性:

var person = {};

$(“#name”).linkTo(“val”, person, “name”);

$(“#name”).val(“foo”);

alert(person.name); // foo

// … 用户更改值 …
alert(person.name); // 用户输入的值

该提案已通过 jQuery 论坛提交,微软正在积极征求社区反馈意见。

http://forum.jquery.com/topic/proposal-for-adding-data-linking-to-jquery

数据链接的原型可通过 Github 查看。

http://github.com/nje/jquery-datalink

我们很高兴看到微软继续为我们的开源社区做出贡献,并请您提供反馈意见,以指导这项工作的进行。

微软将扩大与 jQuery 社区的合作

发布于 作者

jQuery 项目很高兴地宣布,微软将通过新的举措扩大对 jQuery JavaScript 库的支持,包括代码贡献、产品集成和额外资源的分配。

在与 jQuery 项目合作两年的基础上,微软今天在 MIX 2010 上宣布,将与 jQuery 核心团队和社区合作,提供源代码,帮助进一步推进 jQuery JavaScript 库。计划中的贡献针对共同感兴趣领域的特定功能。它们包括:

  • 模板
  • 脚本加载
  • 数据绑定

最初的重点将放在一个新的模板引擎上,该引擎将允许通过定义的模板轻松灵活地进行数据渲染。微软已提交了一个供公众审查的提案以及一个实验性插件,并正在积极与 jQuery 团队和社区合作,以实现统一的实现。模板引擎将被审查并考虑是否包含到 jQuery JavaScript 库中,或作为官方 jQuery 插件进行维护。

微软还将在 Visual Studio 2010 和 ASP.NET MVC 中提供 jQuery JavaScript 库的当前版本,并将继续在微软 CDN 上托管库的当前版本。

最后,微软将提供资源来协助在新的环境中进行 jQuery 的 QA 测试,以确保库的稳定性和持久性。

我们认为这些贡献对 jQuery 的努力和社区来说是一个巨大的优势,并期待与微软继续合作。