jQuery 1.3.2 发布

发布日期: 作者:

下载

jQuery 1.3.2
https://code.jqueryjs.cn/jquery-1.3.2.min.js 压缩版 (使用 Gzipping 压缩后 19kb)
https://code.jqueryjs.cn/jquery-1.3.2.js 标准版 (120kb)

变更

以文档顺序返回元素

这是对 jQuery 选择器引擎的更改,它将返回的结果重新排序为文档顺序,而不是传递选择器的顺序。进行此更改是为了符合 选择器 API 规范(jQuery 在支持该规范的浏览器中内部使用它)。

示例结果

  // jQuery 1.3.1 (and older)
  $("h1, h2, h3")
  => [ h1, h1, h2, h2, h3, h3 ]

  // jQuery 1.3.2
  $("h1, h2, h3")
  => [ h1, h2, h3, h3, h1, h2 ]

我要感谢 Diego Perini 推动我们实现这一点。

.live() 现在可以阻止冒泡

现在可以在回调中调用 event.stopPropagation()return false,并使其停止冒泡 live 事件。这意味着您现在可以在彼此内部绑定 live 事件,并且内部处理程序可以阻止外部处理程序触发。

例如

  <ul>
    <li><b>Google</b></li>
    <li><b>Yahoo</b></li>
  </ul>
  <script>
    $("li").live("click", function(){
      $(this).addClass("active");
    });
    $("li b").live("click", function(){
      $(this).addClass("active");
      return false;
    });
  </script>

我要感谢 Iraê 为此问题提出的解决方案。

对于那些想知道 .live() 的当前缺失功能(如 submit 和 change 事件)的人来说,您可以期待所有这些功能将在下个月某个时候发布的 jQuery 1.3.3 中出现。

:visible/:hidden 大修

我们更改了 :visible 和 :hidden 选择器背后的逻辑(这些选择器在整个 jQuery 中用于确定元素的可见性)。

这是逻辑的变化
* 在 jQuery 1.3.1(及更早版本)中,如果元素的 CSS “display” 不是 “none”,其 CSS “visibility” 不是 “hidden”,并且其类型(如果它是输入)不是 “hidden”,则该元素可见。
* 在 jQuery 1.3.2 中,如果元素的浏览器报告的 offsetWidth 或 offsetHeight 大于 0,则该元素可见。

此更改意味着什么?这意味着如果元素的 CSS display 为 “none”,或者其任何父/祖先元素的 display 为 “none”,或者如果元素的宽度为 0 并且元素的高度为 0,则该元素将被报告为隐藏。

进行此切换的好处是什么?结果是双重的
* 性能大大提高。(见下文。)
* 如果元素位于 “隐藏” 元素内(以前不可能,除非使用插件),则该元素将被报告为 “隐藏”。

我要感谢 Matheus Almeida 提出了对这些选择器的性能改进的一些更改。

.height()/.width() 大修

所有与宽度和高度相关的选择器都已大修 - 极大地提高了它们在所有浏览器中的速度。

我要感谢 Mike Helgeson 在此方面的贡献,这在很大程度上是我们在这些方法中看到的巨大进步的原因。

IE 中的选择器加速

随着来自更大 JavaScript 社区的贡献不断涌现,新的 Sizzle 选择器引擎的优势真正开始显现出来。许多补充内容已发布,有助于提高引擎的性能,尤其是在 Internet Explorer 中。

我要感谢 Fabio Buffoni 在此方面的贡献,这在很大程度上是这些加速的原因。

.appendTo()/等等 现在返回插入的元素

这是一个(次要的)API 更改 - 解决 jQuery API 中的错误。appendTo、prependTo、insertBefore、insertAfter 和 replaceAll 方法现在都返回插入的元素集,而不是原始的元素集。

要了解此更改,我们需要查看一个简单的示例。

鉴于以下标记,在 jQuery 1.3.1(及更早版本)中,将发生以下情况

  <div></div>
  <div></div>
  <script>
  $("<p/>")
    .appendTo("div")
    .addClass("test");
  </script>

1.3.1(及更早版本)中的结果

  <div><p class="test"></p></div>
  <div><p></p></div>

这是因为 .appendTo 等等 仅返回传递给它的元素,而不是实际插入的元素(并且由于只传递了一个段落 - 第一个要插入的段落 - 因此只有第一个段落添加了类)。

因此,如果您在 jQuery 1.3.2 中运行相同的代码,您将最终得到

<div><p class=”test”></p></div>
<div><p class=”test”></p></div>

这是预期的结果。唯一的区别是 appendTo、prependTo、insertBefore、insertAfter 和 replaceAll 现在都推送到 jQuery 栈(这意味着它们受 .end() 的影响)。

我们对上述方法的现有用法进行了调查,发现没有发现任何此更改会影响任何现有代码的情况,因此我们认为可以安全地继续进行(尤其是在考虑了这毕竟是预期的行为的情况下)。

测试

我们有一些关于 jQuery 项目中的测试套件和测试方法的公告。
* 我们现在完全支持,并且测试套件在 Internet Explorer 8rc1 和 Chrome 2(Nightly)(除了我们通常的浏览器选择之外)中完全通过。
* 测试套件已打破 1500 个测试(确切地说为 1504 个)。

这意味着我们现在积极地在 11 个浏览器中进行测试 - 并通过测试套件 - Chrome 1、Chrome Nightly、IE 6、IE 7、IE 8rc1、Opera 9.6、Safari 3.2、WebKit Nightly、Firefox 2、Firefox 3、Firefox Nightly。

(我们正在等待 Opera 10 的下一个 beta 版,然后再开始完全支持它,当前 beta 版存在一些严重问题。)

为了衡量 jQuery 不同部分的性能,我们使用了修改后的 SlickSpeed 测试套件副本运行我们的测试(适应处理非选择器测试)。测试运行的原始结果可以在下面找到(所有时间都以毫秒为单位)。

选择器测试

我们使用 Yahoo 主页的副本(一个具有代表性的复杂网页)并使用人们实际使用的选择器集。针对人们当前使用的选择器将有助于提高现有和未来应用程序的性能。

Frameworks	jQuery 1.2.6	jQuery 1.3	jQuery 1.3.2
IE 6		1059		799		626

:hidden/:visible 测试

我们在测试页面中的多个元素上测试了 :hidden 和 :visible 选择器。

Frameworks	jQuery 1.3	jQuery 1.3.2
Firefox 3	1512		190
Firefox 3.1	1202		161
Safari 3.2	592		80
Safari Nightly	334		43
Opera 9.6	1307		497
IE 6		1948		738
IE 7		1295		830
Chrome		490		30

宽度/高度测试

我们在测试页面上测试了 width、height、innerWidth、innerHeight、outerWidth 和 outerHeight 方法。

Frameworks	jQuery 1.3	jQuery 1.3.2
Firefox 3	310		106
Firefox 3.1	281		84
Safari 3.2	146		37
Safari Nightly	166		32
Opera 9.6	345		116
IE 6		313		124
IE 7		283		123
Chrome		113		27

认为您擅长 CSS 并想要免费参加 SXSW?看看这个比赛。

发布日期: 作者:

jQuery UI 赞助商 Filament Group 正在举办一个很棒的比赛

“为了庆祝 ThemeRoller 入选 SXSW Web Award 的技术成就决赛,我们正在举办一项比赛,向创建最酷的 jQuery UI CSS 框架使用方式的人赠送一张免费参加 SXSW Interactive Festival 的门票。”

在此查看比赛帖子:比赛:使用 jQuery UI CSS 框架最酷的方式赢取一张免费参加 SXSW Interactive 的门票

引用 Filament

SXSW badge

我们对新的 jQuery UI CSS 框架 感到非常兴奋,因为它使用 jQuery UI ThemeRoller Web 应用程序可以轻松地对 UI 小部件甚至整个布局进行主题化。为了庆祝提名并鼓励每个人利用这个新框架,我们正在举办一项比赛,看看谁能够展示框架功能的最具创意的用法。获胜者将获得一张免费参加 SXSW Interactive Festival 的门票,该活动将于 2009 年 3 月 13 日至 17 日在得克萨斯州奥斯汀举行。

如何开始

首先,从 jQuery UI ThemeRoller 下载主题和演示页面,并查看 jQuery UI CSS 框架文档 以了解框架的使用方式。然后前往 jQuery UI 网站并获取方便的 Firefox ThemeRoller 书签 来帮助您在构建项目时测试样式。如果您正在创建演示页面,我们强烈建议您包含 主题切换下拉菜单,让用户可以快速在您的页面上采样 ThemeRoller 主题,并真正展示主题的实际应用。

请记住,CSS 框架不仅仅用于 jQuery 插件 - 框架样式可以与任何 Javascript 库或您自己的自定义标记一起使用。我们很高兴看到您如何利用酷炫的 WordPress 模板、公司网站、小部件甚至游戏来展示该系统的强大功能和灵活性。随意使用多个作用域主题 - 放手去做吧。

如何参加

我们将保持简单:在评论中发布您项目的简短描述和指向有效示例的链接。获胜者将由 Filament Group 根据项目的创意、质量和创造力决定。

比赛规则

  • 所有人都有资格参加,没有例外。
  • 您可以提交任何使用 jQuery UI CSS 框架 的项目类型:公共网站、演示页面或任何其他展示您的创意并可公开访问的项目(阅读:不在登录后面)。
  • 您可以提交尽可能多的独特项目;每个项目都算作一个单独的条目。(请不要反复发布同一个项目……这可能会对您不利)。
  • 报名截止日期为 2009 年 2 月 25 日星期三午夜。
  • 比赛获胜者将于 2009 年 2 月 27 日星期五公布。
  • 获胜者将获得一张参加 SXSW Interactive Festival 的门票,其中包括 3 月 15 日星期日参加 SXSW Web Awards 颁奖典礼的门票。我们将通过电子邮件向您发送一个访问码,允许您免费注册。(注意:该通行证不包括参加电影节或音乐节的资格,也不包括交通、住宿或餐费 - 您需要自行支付。)
  • jQuery UI 和 Filament Group Inc. 保留链接到您项目的权利(我们想宣传您的辛勤工作)。

一些灵感

为了展示 jQuery UI CSS 框架的可能性,这里有一个非常棒的插件示例,它很好地利用了该框架,从样式到图标。Nicolas Rudas 创建了一个非常酷的 Apple 风格的文件浏览器,其中还包括主题切换下拉菜单以供使用。他更进一步地创建了一个 jQuery API 浏览器,该浏览器使用他的插件。确实很酷。

(注意:在宣布此比赛之前没有通知 Nicolas Rudas,因此,Nicolas,如果您想参加,您仍然有资格获胜。这场比赛竞争激烈。)

image

在文档维基上有一个使用 CSS 框架的插件列表,但目前列表还很短,我们希望这场比赛能真正激发人们尝试使用这个框架。

所以……行动起来,展示你的实力吧!

点击此处查看比赛:比赛:使用 jQuery UI CSS 框架最酷炫的方式赢得 SXSW Interactive 免费通行证

jQuery UI 1.7 是新的 1.6

发布日期: 作者:

jQuery UI 团队已经花了 9 个多月的时间开发 1.6 版本,在这个漫长的过程中,我们对每个插件进行了深度重构,并引入了全新的 jQuery UI CSS 框架,彻底改变了我们编写标记和样式的方式。同时,jQuery 核心库也发布了新的 1.3 版本,其中包含了许多我们想要利用的改进。

我们理解你的感受

我们清楚地听到了在 1.6 开发周期(1.6rc2 之后)的候选版本之间进行这些相当大的更改时出现的困惑。根据 jQuery UI 社区的反馈,我们希望通过在未来几周内发布两个截然不同的版本来解决 jQuery 1.2.6 和 1.3 之间的兼容性问题。

1.6rc6 加上修复将成为 1.7(与 jQuery 1.3+ 兼容)

我们目前称为 jQuery UI 1.6rc6 的代码将作为 jQuery UI 1.7 发布。该代码从头开始构建,以充分利用 jQuery 1.3 和新的 jQuery UI CSS 框架,并且差异足够大,足以保证进行点版本发布。经过仔细分析,我们决定在单个 UI 版本中同时兼容 1.2.6 和 1.3 是不可行的,因为这会导致代码库难以维护且臃肿。因此,此版本将不兼容 jQuery 1.2.6 或更早版本。

1.6rc2 加上修复将成为 1.6(与 jQuery 1.2.6 兼容)

对于所有仍然积极使用 jQuery 1.2.6 的用户,我们希望提供一个基于 1.6rc2 的 jQuery UI 库的遗留版本,该版本将尽可能多地从最近的代码更新中移植修复和改进,以提供一个清晰、稳定的基础,该基础将与 jQuery 1.2.6 完全兼容。为了避免任何混淆,此版本将被称为 jQuery UI 1.6 final。由于这是一个遗留版本,一旦该版本最终确定,团队将不会再积极开发此代码。此外,此版本不会包含任何与新的 jQuery UI CSS 框架相关的更改。它将具有与 jQuery UI 1.5.3 相同的主题支持。

我们理解这是一个相当大的变化,并欢迎社区提出如何使升级过程尽可能顺利的意见。完整的升级指南将很快发布,它将以插件为基础指导你完成升级过程,帮助你顺利过渡。

当前发布状态

我们收到了很多关于测试最新候选版本 1.6rc6 的帮助,并且正在修复最后几个问题,以便尽快发布该版本。可以在我们的开发和计划维基的前页(http://wiki.jqueryui.com/)上找到该版本的当前摘要状态。我们对这个新的 jQuery UI 版本的质量感到非常兴奋,因为它将成为一个坚实的基础,它将为我们提供一个稳定的 API,并让我们能够在全年发布更多更新和新部件。

每周发布即将到来

从 3 月份开始,我们将转向每周发布模式。每周我们将交替发布一个稳定的 bug 修复版本(1.7.1、1.7.2 等)和一个预览版本(alpha、beta、rc),其中包括新的插件和功能。因此,每个分支最多每两周会收到一次更新。如果我们在这两个版本之间需要额外的发布,或者需要添加额外的 beta 或 rc,我们将根据具体情况进行处理,并相应地调整路线图。我们的目标是实现 6-8 周的发布周期(2-3 周 alpha、2-3 周 beta、1-2 周 rc,然后是最终版本)。

下载构建器更新

我们已经对下载构建器进行了完整的更新。现在它已与 ThemeRoller 完全集成,因此你可以下载包含预建主题或自定义主题的定制 jQuery UI 库 zip 文件。我们还修复了一些与在 IE 中下载无效 zip 文件以及 1.5.3 压缩文件相关的错误。

感谢您的帮助和支持

我们要感谢社区的支持,并鼓励你参与帮助我们开发世界上最好的 UI 库。如果您是一位对帮助我们修复 bug 感兴趣的开发人员,请随时在 ui-development 邮件组(http://groups.google.com/group/jquery-ui-dev)上发布消息,并询问如何提供帮助。

jQuery UI 1.6rc6:帮助我们测试!

发布日期: 作者:

jQuery UI 1.6rc6 可供下载。

下载 jQuery UI 1.6rc6
你可以直接从以下位置下载整个开发包:

http://jquery-ui.googlecode.com/files/jquery.ui-1.6rc6.zip

这包括一个默认主题,以及所有测试和演示文件。或者,你可以创建包含单个组件的自定义下载

https://jqueryui.jqueryjs.cn/download/

以及自定义主题

https://jqueryui.jqueryjs.cn/themeroller

这是在明天(周六晚上)发布 1.6 正式版之前的最后一步。由于我们只有两天的时间,我们真的需要你的帮助,看看是否还有我们可能忽略的重大阻碍。如果你发现任何问题,请在 jQuery UI 错误跟踪器上创建一个工单

http://dev.jqueryui.com/(注意:需要注册)

并在 jQuery UI 开发邮件列表上发送讨论通知

http://groups.google.com/group/jquery-ui-dev

感谢大家,准备好度过一个美好的周末吧!

旧金山 jQuery 聚会

发布日期: 作者:

本周有一些 jQuery 开发人员在旧金山,我们觉得举办一次聚会会很有趣。John Resig(jQuery 创建者)、Rey Bango(jQuery 传播团队主管)和 Yehuda Katz(Rails 核心贡献者、jQuery 团队成员)都会在明天晚上(29 号)参加聚会,如果你想打个招呼,可以来参加。

你可以在 Upcoming.org 网站上找到有关该活动的更多信息 - 如果你有兴趣参加,可以随意添加自己。
jQuery(“#drinks”).imbibe();

jQuery 1.3.1 发布

发布日期: 作者:

欢迎 Digg 用户!你可能对完整的jQuery 1.3版本感兴趣,该版本刚刚于 14 日发布。享受吧!


这是一个针对jQuery 1.3的 bug 修复版本。你可以在错误跟踪器上查看已修复内容的完整列表。

1.3.1 与 1.3 相比没有重大变化,除了直接修复 bug。如果你仍在使用 jQuery 1.2.6,并希望升级,请直接升级到此版本。

下载

jQuery 1.3.1 的副本也位于Google CDN上(可以随意将 URL 直接复制到你的网站)

如果你希望从Subversion 存储库中签出完整版本,你可以按照以下说明操作,并从以下位置签出源代码

svn co http://jqueryjs.googlecode.com/svn/tags/1.3.1

几个快速说明

在 1.3 的发布说明中,有人指出我们错过了对 Firefox 2 的测试,即使我们仍然支持它。这是我们的错误:我们仍然支持 Firefox 2,并且在发布之前对其进行了测试。你可以看到下面运行的完整测试套件。

jQuery 1.3.1

还指出 Safari 2 没有出现在我们在 1.3 版本发布之前测试的浏览器列表中。这是正确的 - 我们正在逐步停止对 Safari 2 的支持。考虑到 Safari 2 的市场份额微不足道,并且已经被 3 个独立的 Safari 版本(3.0、3.1 和 3.2)取代,我们不再认为有必要对该版本进行大量测试。

最后,一些用户注意到我们不再提供 jQuery 的“打包”版本(一个经过Dean Edwards' Packer处理的 jQuery 版本,其中开启了 Base62 编码)。我们这样做有几个原因:

  • 打包脚本非常难以调试(比压缩脚本更难)。
  • 打包脚本无法在所有平台上正常运行(例如 Adobe AIR 和 Caja 可用环境)。
  • 但最重要的是:与仅使用压缩相比,打包脚本对用户来说速度更慢。这似乎违反直觉,因为打包脚本的文件大小比压缩脚本小,但最终的加载时间却要长得多(因为必须经过解压缩步骤)。对于感兴趣的用户,我们有关于压缩脚本与打包脚本加载性能的一些数据

我们提供的 jQuery 压缩副本经过YUI Compressor处理,应该是生产环境中使用 jQuery 的最佳形式(如果可能,使用 gzip 压缩)。

jQuery UI 1.6rc5 与 jQuery 1.3 兼容

发布日期: 作者:

jQuery UI 1.6rc5 已发布。

下载 jQuery UI 1.6rc5
可以直接下载整个开发包

http://jquery-ui.googlecode.com/files/jquery.ui-1.6rc5.zip

这包括一个默认主题,以及所有测试和演示文件。或者,你可以创建包含单个组件的自定义下载

http://ui.jquery.com/download/

以及自定义主题

http://ui.jquery.com/themeroller

如果您在过去两周内从 ThemeRoller 获取了主题,请务必下载最新的 1.6rc5 主题。(另外,对于任何使用 1.5.3 的用户,ThemeRoller 上有一个链接用于下载旧版主题)

与 jQuery 1.3 的兼容性
感谢许多帮助测试和修复 bug 以使此版本发布的人员。在 rc4 发布后的两周内,我们修复了许多问题,此版本的重大修复是与 jQuery 1.3 (Happy Birthday jQuery) 兼容,而 1.6rc4 仅与 jQuery 1.2.6 兼容。从现在开始,我们要求不再使用 1.6rc4 进行测试。此外,从现在开始,jQuery UI 1.5.3 将只支持 jQuery 1.2.6。jQuery UI 1.6 将只支持 jQuery 1.3+
感谢您为确保此版本能够顺利发布并与 jQuery 1.3 完全兼容所提供的帮助。如果您发现任何问题,请在 jQuery UI bug 跟踪器上创建一个工单

http://ui.jquery.com/bugs (注意:需要注册)

并在 jQuery UI 开发邮件列表上发送讨论通知

http://groups.google.com/group/jquery-ui-dev

目前的计划是在下周结束前发布 1.6 正式版。

jQuery 1.3 发布

发布日期: 作者:

jQuery 团队很高兴发布 jQuery JavaScript 库的最新主要版本!这个版本经历了大量的编码、测试和文档编写,我们对此感到非常自豪。

我想要特别感谢 Ariel Flesler 和 Brandon Aaron,他们为修复 bug 和发布此版本付出了很多努力。

概述

jQuery 1.3 中有一些重大变化,以下是一些最显著的变化。

Sizzle 选择器引擎

jQuery 有一个全新的 CSS 选择器引擎——绰号为 Sizzle。我们想要一个引擎,它

  1. 对于最常用的选择器来说,比我们现有的引擎更快。
  2. 完全可扩展 (我们在过去版本的 jQuery 中不得不牺牲一些可扩展性以换取性能)。
  3. 完全独立。

就性能而言,我们做得相当好,速度比我们之前的引擎快了约 49%

这尤其令人惊讶,因为 1.2.6 中的引擎已经相当快,而且我们在过程中获得了很大的可扩展性。

在新引擎开发过程中,有一件事变得非常明显:我们希望能够与其他库和开发人员合作。我们看到了一些与一些最优秀的 JavaScript 开发人员进行良好合作的机会,这将有助于所有库的用户。为此,我们确保 Sizzle 能够完全独立工作(没有依赖项)。

此外,为了表示诚意和合作意愿,我们已将 Sizzle 的源代码发布到 Dojo Foundation。我们想要一个共同的平台,让每个人都能够在其中共同工作,并且有一个明确的长期版权所有者。

目前,我们正在与 Prototype、Dojo、Yahoo UI、MochiKit 和 TinyMCE(以及许多其他人)合作开发 Sizzle,使其更加完善。

实时事件

jQuery 现在支持“实时事件”——可以绑定到所有当前和未来元素的事件。使用事件委托和无缝的 jQuery 风格 API,结果既易于使用又非常快。

有关实时事件的更多信息,请参阅 .live() 文档。

在开发实时事件时,我们想要一个快速且可扩展的解决方案。为此,我们需要一个选择器引擎来处理委托元素过滤(大致来说,就是“此选择器是否匹配此元素”)。新的 Sizzle 选择器引擎超出了我们的所有预期——速度几乎是之前解决方案的 30 倍。

通过使用高级过滤技术,我们能够为您提供一个事件委托解决方案,它不会拖慢您的浏览器,并且可以扩展到页面上数十或数百个委托。

jQuery 事件对象

Ariel Flesler 在 jQuery 1.3 中对 jQuery 事件系统进行了重大重构。此变化的大部分内容归结于新的 jQuery.Event 对象。此对象完全封装了通常在 W3C 兼容事件对象实现中找到的所有功能,并使其在所有浏览器中都能顺利工作。

还有一些与事件系统相关的单独更改,这些更改将在后面的事件部分中详细描述。

HTML 注入重写

与将 HTML 注入文档相关的所有代码(如 append、prepend、before 和 after 方法)都已过时。当我们分析 jQuery 应用程序时,我们发现这是最常见的瓶颈之一,因此急需改进。提供的功能与 jQuery 之前版本中的功能相同,但速度更快(总体而言快了约 6 倍)。

我们还改进了 DOM 元素的创建(例如 $("<script/>")),使其与调用 $(document.createElement("script")) 相同(结果更快且更合理)。

偏移量重写

Brandon Aaron 认为,对 .offset() 方法进行全面重写是 1.3 的必要步骤。从头开始重写,它不仅能更好地处理跨浏览器问题,而且速度也快得多。

与 1.2.6 中的 offset 方法相比,性能提高了近 3 倍,此重写必将使您的复杂交互更加流畅。

不再进行浏览器嗅探

此版本中的最后一个主要功能是您可能永远不会直接看到或处理的功能,但它是一个重要的变化,有助于使 jQuery 更持久、更少 bug:从 1.3 开始,jQuery 内部不再使用任何形式的浏览器/userAgent 嗅探——并且是第一个做到这一点的主要 JavaScript 库。

浏览器嗅探是一种技术,它根据您对代码在将来如何工作的假设。通常这意味着假设某个特定浏览器 bug 将永远存在——这会导致代码在浏览器进行更改并修复 bug 时经常出现故障。

相反,我们使用一种称为特性检测的技术,其中我们模拟特定的浏览器特性或 bug 来验证其是否存在。我们已将 jQuery 中使用的所有检查封装到一个对象中:jQuery.support。有关特性检测、特性检测和此功能提供的更多信息,请参阅文档。

需要注意的是,jQuery.browser 仍然存在于 jQuery 中——并且在可预见的未来将继续存在(太多插件和代码依赖于它)。也就是说,我们已将其弃用,以鼓励您——以及所有 JavaScript 开发人员——认真考虑在您的代码中使用特性检测。

升级

在 jQuery 1.3 中,我们试图最大限度地减少任何重大升级的麻烦——维护所有现有的公共 API。也就是说,请阅读潜在的重大更改列表,了解哪些更改可能会导致您的应用程序出现问题。

注意:许多插件正在提供更新版本以配合 jQuery 1.3。如果您在使用某个特定插件时遇到问题,请务必查看是否已发布新版本。具体而言,jQuery UI 和验证插件都提供了与 jQuery 1.3 兼容的更新版本。

下载

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

https://code.jqueryjs.cn/jquery-1.3.min.js jQuery 压缩版 (18kb gzipped)
https://code.jqueryjs.cn/jquery-1.3.js jQuery 标准版 (114kb)

此外,Google 为我们提供了一个托管在他们服务器上的 jQuery 副本。此 jQuery 副本会自动压缩并使用 gzip 压缩,并从 Google 的快速边缘缓存服务器提供。

https://ajax.googleapis.ac.cn/ajax/libs/jquery/1.3/jquery.min.js

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

变更

以下是可能导致您的网页出现向后兼容性问题的更改。

  • 已删除 [@attr] 中的“@”。自 1.2 版开始弃用,此旧语法不再有效。只需删除 @ 即可升级。
  • 触发的事件现在会向上冒泡 DOM。不经意的事件处理程序可能会意外捕获比预期更多的事件。
  • ready() 方法不再尝试对等待所有样式表加载进行任何保证。相反,所有 CSS 文件都应该在页面上的脚本之前包含。
  • .isFunction 现在更简单,它不再处理一些奇怪的边缘情况(为了简单和性能)。
  • “a, b, c” 风格的选择器顺序可能会改变。支持 querySelectorAll(Safari、Firefox 3.5+、Opera 10+、IE 8+)的浏览器将按文档顺序返回元素,其他浏览器将(目前)按指定顺序返回元素。在 1.3.2 及更高版本中,所有逗号分隔的选择器将按文档顺序返回。
  • trigger 和 triggerHandler 方法不再接受数据数组中的事件对象。相反,应该直接将它们指定为参数。
  • 未公开的“extra” 函数也已从 trigger 和 triggerHandler 函数中删除。
  • 内部 jQuery.event.trigger 不再返回处理程序返回的最后一个项目,而是根据 W3C 规范返回 true 或 false。您应该使用 jQuery.Event 对象来捕获特定返回值。
  • 您应该始终确保在标准模式下运行您的页面。已知在怪异模式下,某些方法无法正常工作。
  • 已删除一种旧的(已弃用)创建选择器插件的样式。以前,您可以创建字符串编码的插件,这些插件后来会转换为函数——此功能已删除——请直接创建函数。
  • jQuery.param(obj) 执行 obj 的函数,而不是将其转换为字符串。

以下属性已弃用(为了支持特性检测和 jQuery.support,如概述中所述:jQuery.browser、jQuery.browser.version、jQuery.boxModel。

以下浏览器不再受支持:Safari 2

性能

为了衡量 jQuery 不同部分的性能,我们使用了一个经过修改的 SlickSpeed 测试套件副本来运行我们的测试(经过调整以处理非选择器测试)。测试运行的原始结果可以在下面找到(所有时间以毫秒为单位)。

我们使用 Yahoo 主页的副本(一个具有代表性的复杂网页)并使用人们实际使用的选择器集。针对人们当前使用的选择器将有助于提高现有和未来应用程序的性能。

Frameworks	jQuery 1.2.6	jQuery 1.3	Dojo 1.2.3	MooTools 1.2.1	Prototype 1.6.0.3
Firefox 3	184		111		147		240		137
Firefox 3.5	113		34		105		135		55
Safari 3.2	71		15		64		76		50
Safari Nightly	46		15		65		47		18
Opera 9.6	107		75		73		132		87
IE 6		854		640		561		1611		3174
IE 7		210		181		150		490		761
Chrome		30		13		23		118		10

委托过滤测试

为了测试委托过滤,我们尝试查看给定元素是否匹配选择器。jQuery 1.3 和 Prototype 为处理此操作提供了原生方法(分别是 .is 和 .match),而 jQuery 1.2.6、Dojo 和 MooTools 都使用了“运行选择器并查看元素是否在结果中”的技术。

Frameworks	jQuery 1.2.6	jQuery 1.3	Dojo 1.2.3	MooTools 1.2.1	Prototype 1.6.0.3
Firefox 3	3260		199		1630		3798		763
Firefox 3.5	1047		113		620		1101		298
Safari 3.2	1169		91		820		1223		188
Safari Nightly	911		65		294		590		125
Opera 9.6	1764		167		898		1976		451
IE 6		22142		1201		13000		17227		12827
IE 7		4908		341		2664		5497		2994
Chrome		959		125		700		939		153

DOM 操作测试

这些测试分析了插入 DOM 片段的性能(对于 jQuery 和 Prototype 来说,这是 HTML,对于 MooTools 来说,它是使用它们的 Element 类)。Dojo 没有提供任何显式助手来注入 HTML 或构建 DOM 元素,因此它被排除在外。

Frameworks	jQuery 1.2.6	jQuery 1.3	MooTools 1.2.1	Prototype 1.6.0.3
Firefox 3	161		41		47		323
Firefox 3.5	113		31		42		78
Safari 3.2	77		10		25		41
Safari Nightly	87		22		22		31
Opera 9.6	130		23		36		84
IE 6		710		110		600		971
IE 7		560		60		330		460
Chrome		49		14		23		21

.offset() 测试

在多个元素上运行 jQuery .offset() 方法。

Frameworks	jQuery 1.2.6	jQuery 1.3
Firefox 3	142		30
Firefox 3.5	45		23
Safari 3.2	92		18
Safari Nightly	75		39
Opera 9.6	39		26
IE 6		151		70
IE 7		100		50
Chrome		115		21

.hide()/.show() 结果

在多个元素上运行 .hide() 和 .show() 方法。

Frameworks	jQuery 1.2.6	jQuery 1.3
Firefox 3	2680		722
Firefox 3.5	1867		448
Safari 3.2	1015		577
Safari Nightly	532		306
Opera 9.6	2327		1173
IE 6		8242		2715
IE 7		1912		961
Chrome		1922		551

jQuery 1.3 和 jQuery 基金会

发表于 作者

祝 jQuery 生日快乐!jQuery 今天三岁了,它是在 2006 年 1 月 14 日由 John Resig 在第一个 BarCampNYC 上发布的。

今天我们有四个公告要宣布,希望您会喜欢它们!

jQuery 1.3

首先,我们已经准备好了一个很棒的 jQuery 新版本供您享受。这个版本的主要功能是

  • Sizzle:一个非常棒的 CSS 选择器引擎。
  • 实时事件:带有 jQuery 风格的事件委托。
  • jQuery 事件大修:完全重新设计以简化事件处理。
  • HTML 注入重写:闪电般快速的 HTML 追加。
  • Offset 重写:超级快速的定位计算。
  • 不再进行浏览器嗅探:使用特性检测来帮助 jQuery 在未来几年内继续存在。

可以在发布说明中找到发布的完整细节
http://docs.jquery.com/Release:jQuery_1.3

我们目前计划在未来一到两周内发布 jQuery 1.3.1 补丁版本,以解决可能出现的任何漏网之鱼。如果您发现任何错误,请务必将它们提交到错误跟踪器

Sizzle

jQuery 有一个全新的 CSS 选择器引擎,绰号为 'Sizzle'。您可以在jQuery 1.3 发布说明(包括性能指标)中阅读有关它的全部细节。

更重要的是,我们正与 Sizzle 一起迈出一大步:我们将其作为完全独立的项目发布,以便许多库创建者和开发人员能够共同参与。我们看到了一个机会,不仅要回馈 jQuery 社区,还要回馈整个 JavaScript 开发社区;同时能够与其他库的开发人员合作开发一个统一的选择器引擎。我们认为,目前的竞争太多,合作太少,因此我们发布了自己的代码作为迈向共同努力的良好第一步。

作为诚意和合作意愿的象征,我们将 Sizzle 交给了Dojo 基金会(一个非常适合这个项目的非营利组织,不要与 Dojo Toolkit 混淆)。我们希望有一个共同的平台,让所有开发人员能够共同努力,并有一个明确的长期版权持有者。

我们对合作的请求已经获得了惊人的回应:来自 Prototype、Dojo、Yahoo UI、MochiKit 和 TinyMCE(以及许多其他项目)的开发人员都对完善 Sizzle 表现出了兴趣。

可以在此处找到一个粗略的 Sizzle 项目页面
http://sizzlejs.com/

以及完整源代码
http://github.com/jeresig/sizzle/tree/master

新的 API 浏览器

随着 jQuery 1.3 的发布,我很高兴地向大家介绍新的 API 浏览器,由Remy Sharp开发,网址为:https://api.jqueryjs.cn/

jQuery API Browser
这是对现有jQuery API的另一种看法,它应该易于浏览和使用。

新的 API 浏览器包含以下功能

  • 所有最新的 jQuery 和 jQuery UI 文档。
  • 能够将页面标记为收藏夹,以便您能够轻松地返回到这些页面。
  • 代码示例中的语法高亮显示
  • 在浏览器中实时运行示例
  • 链接到编辑和试验代码示例

最重要的是,API 浏览器也可以作为 Adobe AIR 应用程序离线使用(感谢Tane Piper的 AIR 框架)。界面看起来和工作方式相同,并且包含自动更新机制,因此您将始终保持最新状态。

下载并安装 AIR API 浏览器

如果您遇到问题,请在错误跟踪器的“网站”组件下提交错误。

这引出了最后一个,当然也是最重要的观点……

jQuery 基金会

随着 jQuery 项目以惊人的速度增长,作为团队,我们有必要退一步,确定项目的管理方式。目前,jQuery 的创始人兼首席开发人员 John Resig 和 jQuery UI 的首席开发人员 Paul Bakaus 都拥有各自项目的管理权。从实际和法律的角度来看,这带来了几个问题,因为它将两个人捆绑在一起作为项目的所有者,而不是一个正式的组织。随着越来越多的个人和公司开始为项目做出贡献,这些问题变得更加明显,导致人们对谁是特定工作单元的正确版权持有者感到困惑。

在最近的 jQuery 大会上会面并进行讨论之后,我们决定真正做出协调一致的努力来解决这个问题,并确定如何将 jQuery 项目的管理权转移到一个基金会类型的组织,该组织将

1. 了解开源软件开发的性质。
2. 允许我们继续不受阻碍地管理项目。
3. 确保项目无论谁参与,都能够继续存在。

在考察了许多选择之后,我们得出了最终的结论,并且我们很高兴地宣布软件自由保护组织已向 jQuery 项目发出邀请,邀请它加入该非营利组织并在其支持下继续开发软件。通过加入软件自由保护组织,jQuery 项目和社区立即获得了以下一些重要优势

1. 它允许现有的项目成员继续管理项目,并对当前和未来工作的方向承担最终责任。
2. 它允许项目被视为真正的非营利性努力,使我们能够接受捐赠和捐款,而不会承担巨大的个人财务责任。
3. 代码的版权将分配给保护组织,从而确保没有一个人拥有项目的贡献或资产。
4. 它可能允许公司在员工为项目做出贡献时抵税。
5. 最重要的是,它确保 jQuery 项目将始终是开放的免费软件。

这是 jQuery 项目正式化的一大步,也是确保 jQuery 社区正在进行的投资得到保护的一项重要成就。我们将在未来几周内完成向保护组织的过渡。项目运行方式几乎不会有任何变化。 jQuery 团队将继续运行和管理项目,我们也将继续努力构建最好的 JavaScript 库。如果有什么不同的话,这将帮助我们腾出一些时间,以便我们可以花更多时间编码——谁不喜欢这种想法呢?

祝 jQuery 三岁生日快乐!