jQuery 1.3 和 jQuery 基金会

发布于 作者

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

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

jQuery 1.3

首先,我们有一个很棒的 jQuery 新版本,供您使用。此版本的重大功能包括

  • Sizzle:一个非常棒的 CSS 选择器引擎。
  • 实时事件:带有 jQuery 风格的事件委托。
  • jQuery 事件大修:完全重新设计以简化事件处理。
  • HTML 注入重写:闪电般快速的 HTML 追加。
  • 偏移量重写:超快的定位计算。
  • 不再进行浏览器嗅探:使用特性检测来帮助 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 工具包混淆)。我们想要一个共同的平台,让所有开发人员能够共同协作,并且有一个明确的长期版权所有者。

我们对合作的请求已经获得了令人惊叹的回应:来自 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 三岁生日快乐!

jQuery 大会 2008 年议程

发布于 作者

即将举办的 jQuery 大会 2008 即将在波士顿的 麻省理工学院 Stata 中心 于 9 月 28 日举行,门票已经售罄。有 jQuery 团队 以及 Jonathan SnookAza RaskinCody Lindley 等行业知名专家将在会上发表 13 场演讲,这将是一场精彩的活动。

会议分为初学者和高级两个轨道,以使不同 jQuery 经验的开发人员能够充分利用适合他们需求的会议。以下您可以找到会议议程。为了共享信息,我们希望尽快发布议程。我们很快就会发布另一个页面,提供主题描述以及每位演讲者的简介。

特邀演讲者

John Resig

John Resig

John ResigjQuery JavaScript 库 的创建者和首席开发人员。他还是 Mozilla 公司 的 JavaScript 传教士,以及《精通 JavaScript 技术》一书的作者。

目前,John 位于马萨诸塞州波士顿。他正在努力创作他的第二本书《JavaScript 忍者秘籍》,该书将于 2008 年底在书店上市。

Joern Zaefferer

Joern Zaefferer

Jörn Zaefferer 是 jQuery 核心团队的成员。除了他在 jQuery 本身的工作外,他还编写和维护了几个最受欢迎的 jQuery 插件。Jörn Zaefferer 在德国科隆的 maxence integration technologies GmbH 担任顾问,在那里他为 maxence 的客户和 maxence 自己的产品设计和开发基于 Java 的 Web 应用程序。

Jonathan Snook

Jonathan Snook

Web 设计师和开发人员 Jonathan Snook 从客户端前端工作到硬核服务器端挑战无缝切换,他对 CSS、JavaScript、PHP 和 MySQL 的精通使他成为许多高知名度客户的“首选”人选。他是《加速 DOM 脚本》和《CSS 的艺术与科学》的合著者,定期在他的热门博客 snook.ca 以及 Digital Web 和 Sitepoint 上撰稿。Jonathan 还与他的合作伙伴一起在 Sidebar Creative 工作,Sidebar Creative 是世界一流的网站和创新应用程序的制造商。

Richard Worth

Richard Worth

Richard D. Worth 是华盛顿特区地区的 Web 开发人员。他为 Fulcrum IT 工作,参与 Web 服务合同,主要为政府工作。Richard 是 jQuery UI 的主要开发人员之一,jQuery UI 是构建在 jQuery 之上的组件框架,旨在使富互联网应用程序像 jQuery 使 Ajax 变得简单一样简单。Richard 也是 dmxzone.com 的特约作者,定期撰写初级和高级 jQuery UI 文章,并被选中担任将于秋季出版的有关 jQuery UI 的书籍的技术审阅者。

Paul Bakaus

Paul Bakaus

Paul Bakaus 是一位居住在德国的 UI 架构师。他是 jQuery UI 的创建者和负责人,并受 Liferay 开源公司的全职赞助职位,为 jQuery UI 工作。他负责 jQuery UI 的总体方向和路线图,并且喜欢在世界各地谈论他的用户界面工作。他也是 jQuery 核心团队的成员,并参与 jQuery 项目的总体方向讨论。过去,他主要负责创建 jQuery 尺寸插件(现在是 jQuery 核心的一部分),并与 Stefan Petre 共同开发了丰富的效果和组件库 Interface。

Yehuda Katz

Yehuda Katz

除了是《jQuery 实战》的合著者外,Yehuda Katz 还是《Ruby 实战》的贡献者,以及即将出版的《Merb 实战》的合著者。他是 DataMapper 和 jQuery 的核心贡献者。在加入 Engine Yard 之前,他曾在一家使用 Ruby on Rails 和 jQuery 开发的建筑管理工具公司工作。Yehuda 是一位 Merb 核心开发人员,为 Rubinius 做出了贡献,并在 Engine Yard 新控制面板的开发中发挥领导作用。

Aza Raskin

Aza Raskin

Aza Raskin 是 Humanized(现在是 Mozilla 的一部分)、Songza 和 Bloxes 的创始人。作为苹果软件先驱 Jef Raskin 的儿子,他对人机交互设计有着浓厚的兴趣,并将这种兴趣融入到他所做的所有事情中。

Karl Swedberg

Karl Swedberg

在担任高中英语老师、广告公司的文案编辑以及咖啡馆老板之后,Karl Swedberg 三年前开始了他的网页开发人员生涯。他现在在密歇根州大急流城的 Fusionary Media 工作,专门从事客户端脚本和交互设计。Karl 是 jQuery JavaScript 库的“传教士”,也是两本书的合著者:《jQuery 入门》和《jQuery 参考指南》。

Scott Jehl

Scott Jehl

Scott JehlFilament Group 的设计师,这是一家位于马萨诸塞州波士顿的专门从事 Web 应用程序设计和开发的工作室。在 Filament,Scott 和他的同事经常为 jQuery 社区贡献设计和代码,并最近构建了 ThemeRoller,这是一个用于 jQuery UI 的主题设计应用程序。Scott 领导着 jQuery 的设计团队,并运营着 WriteMaps,一个用于构建可视化网站地图的 Ajax Web 应用程序。他喜欢滑板、滑雪、户外运动,以及与妻子 Stephanie 和两只猫一起度过时光。

Jonathan Sharp

Jonathan Sharp

Jonathan Sharp 是一位以标准为驱动的自由 Web 设计师和开发人员。他拥有前端和后端技术的经验,在集成方面具有价值,能够提供无缝的用户体验。Jonathan 还开发了许多 jQuery 插件,例如 jdMenu、jdNewsScroll 和 positionBy。在成为自由职业者之前,Jonathan 在芝加哥为联合太平洋铁路公司、CSC 和摩托罗拉公司工作,此前他于 2000 年初帮助在华盛顿州贝尔维尤创立了 Imprev, Inc.。他与妻子 Erin 和女儿 Noel 居住在内布拉斯加州。在工作之余,他喜欢与家人共度时光,与他们的狗玩耍,以及骑着他的挽马 Micah 驰骋夕阳。

Kevin Hoyt

Kevin Hoyt

Kevin Hoyt 是 Adobe Systems, Inc. 的平台布道师。他热衷于吸引人的用户体验,你经常会发现他与客户会面、参加会议、举办在线研讨会,或者只是享受分享想法和与其他开发人员一起头脑风暴的机会。当不在路上时,Kevin 喜欢与家人共度时光,摄影和通用航空。

Cody Lindley

Cody Lindley

Cody Lindley 是一位基督徒、丈夫、儿子、兄弟、专业 Web 开发人员和户外爱好者。他大部分时间都花在睡觉和工作上,但谁不呢?在普通美国人日常生活之间,他渴望一种与上帝、家人和自然建立联系的生活。他认为自己是一个书虫和一个新手神学家,但说实话,他只是太喜欢看电影和玩 Xbox 了。他感谢能够将他的职业作为个人爱好来追求。更多关于 Cody 的信息可以在他的网站 codylindley.com 上找到。

Mike Alsup

Mike Alsup

Mike Alsup 是纽约州罗切斯特 Click Commerce 的高级开发人员。他从事软件解决方案开发已有 15 年,目前专注于 Java、Swing、J2EE 和 Web 应用程序。自 2006 年初 jQuery 项目诞生以来,Mike 一直参与其中,并编写了许多流行的插件,包括 Form Plugin、BlockUI、Taconite 和 Cycle。

议程

初学者 高级
9:00 – 9:30
注册,早餐
9:30 – 9:55
jQuery 的现状 - John Resig
10:00 – 10:50 jQuery 入门 - Karl Swedberg 优化 jQuery 核心 - John Resig
11:00 – 11:50 jQuery 案例研究 - Cody Lindley
和 Jonathan Snook
编写可扩展的 jQuery 应用程序 - Yehuda Katz
12:00 – 1:00
午餐
1:00 – 1:50 使用 jQuery UI 简化丰富的交互性 - Richard Worth 深入了解 jQuery UI - Paul Bakaus
2:00 – 2:50 设计可重用的 jQuery 组件 - Scott Jehl 使用 jQuery 和 Adobe AIR 开发桌面应用程序 - Kevin Hoyt
3:00 – 3:50 为 jQuery 辩护 - Jonathan Sharp 在 Firefox 扩展中使用 jQuery - Aza Raskin
4:00 – 4:50 你的第一个 jQuery 插件 - Mike Alsup 构建健壮的 jQuery 插件 - Joern Zaefferer
5:00 – 6:00
晚餐
晚些时候
剑桥啤酒公司,饮酒和社交

各个会议的完整细节、演讲者的传记以及其他会议信息即将公布。

jQuery 网站重新设计 - 社区的声音

发布日期: 作者:

正如你们许多人现在所看到的那样,jQuery 项目的网站已经重新设计。这是一项早就应该完成的任务,为 jQuery 的主要中心和门面注入新鲜感非常重要。jQuery 项目的一个特点是,我们从未随波逐流或墨守成规。通过突破界限,有时甚至“直言不讳”,我们不仅在受欢迎程度上大幅增长,而且推动了大多数其他 JS 库项目重新思考自己的原则,并做出改变以改进他们的产品。这对每个人来说都是一件好事,因为竞争总是好的。

因此,jQuery 网站的剧烈变化并不令人意外。到目前为止,最大的抱怨与新横幅有关(即摇滚明星漫画和口号)。同样,我们希望突破界限,想出一些能够产生很多轰动的东西。总的来说,我们在实现这个目标方面取得了成功,收到了很多积极的反馈,但不幸的是,也有一些非常负面的评论。我们实际上重视这两种类型的反馈,并希望获得更多反馈,因为这是确定我们是否走在正轨上的唯一途径。与任何网站重新设计一样,你不可能让每个人都满意,我们理解这一点。但我们也希望每个人都意识到,这是一个初稿,并不意味着它不能进行调整。

我们正在积极审查所有反馈,并将认真研究如何最好地处理社区的一些担忧。毕竟,社区是让 jQuery 项目如此特别,如此不同于其他项目的关键。此外,jQuery 团队一直都在倾听社区的需求,这一次也不例外。再说一次,我认为这个团队的独特之处在于,我们 *确实倾听* 社区的意见,我们将努力使网站成为每个人的宝贵工具。所以请给我们一些时间来查看信息,并留意本博客的更新。
感谢你的耐心,我们真的感谢你的反馈。

jQuery 会议 2008 注册开放

发布日期: 作者:

jQuery 会议 2008 的注册现已正式开放。立即注册 以确保你的席位!
正如 宣布 的那样,这次为期一天的会议将在 波士顿9 月 28 日星期日 举行,并将设有来自 jQuery 项目成员和一些特邀嘉宾的两个演讲轨道(初学者和高级)。50 美元 的注册费将用于支付场地费用以及所有参会者的食物、饮料和 T 恤。

我们正在最终确定一个方便的场所,特别是对于那些将在接下来的星期一到星期三参加 Ajax 体验 会议的人来说。我们仍在敲定议程,但你可以期待这是一场盛大的活动。

如果你有任何问题,请随时联系我们,邮箱地址:events [at] learningjquery.com

jQuery 营 2008 宣布

发布日期: 作者:

jQuery 团队很高兴地宣布第二届年度 jQuery 营!jQuery 营 2008 将于 9 月 28 日星期日 在马萨诸塞州波士顿举行(地点待定),届时将举行 Ajax 体验的前一天。

去年,超过 100 名 jQuery 开发人员齐聚一堂,参加了一整天的 jQuery 会议,会议内容包括来自 jQuery 创建者 John Resig 和其他核心团队成员的演讲,以及来自专家用户的演讲,探索新的令人兴奋的 jQuery 项目。它汇集了有史以来规模最大的 jQuery 核心团队成员群体,并为用户提供了与他们交流想法并提出新想法的机会。

这次活动获得了 *巨大* 的成功,今年的营地有望更上一层楼。

jQuery 营 2008 将提供两个轨道,提供入门和高级课程,涵盖各种主题。Ajax 开发、mashup、安全以及最近发布的 jQuery UI 组件和效果库只是已经安排好的主题中的一部分。

jQuery 营 2008 将收取每人 50 美元的象征性费用,其中包括午餐。参会者 *无需* 注册参加 Ajax 体验即可参加。注册将于 7 月开始;请密切关注 jQuery.com 以获取更多信息!

对于那些参加 Ajax 体验的人来说,活动组织者最近宣布了在 9 月 29 日的会议中心增加半天的 jQuery 课程时间。议程仍在制定中,但我们正在考虑提供一个“梦幻团队代码审查”会议,用户可以在其中让 jQuery 团队成员审查他们的代码。我们希望获得你的反馈;你会参加这个会议吗?

jQuery 营 2008 是一个真正绝佳的机会,可以从 jQuery 团队学习,并与顶尖的 jQuery 开发人员进行交流;我们期待与大家见面!

9 月再见。

jQuery 1.2.6 发布

发布日期 作者

这主要是 jQuery 1.2 的一个 bug 修复版本。您可以在 bug 跟踪器 上查看完整的修复列表。

这是紧随 jQuery 1.2.3 之后的下一个版本。版本 1.2.4 和 1.2.5 被跳过了(1.2.4 构建错误,使其实际上与 1.2.3 相同,而 1.2.5 缺少一个补丁)。

整个 jQuery 团队在发布这个版本方面做得非常出色——我要借此机会感谢他们所有人对我们持续的努力。

我还想借此机会欢迎 Ariel Flesler 加入 jQuery 核心开发团队。他在发布这个版本方面提供了宝贵的帮助——贡献了 bug 修复、性能改进、功能和测试用例。您可以在整个发布版本中看到他辛勤工作的成果。欢迎 Ariel,并感谢他为我们做出的所有贡献!

下载

jQuery 1.2.6

性能改进

jQuery 团队再次努力在这个版本中带来了巨大的性能改进。与之前的版本一样,我们已经扩展到查看 jQuery 框架的许多领域,寻找常见的痛点,并提供解决方案。

所有关于以下性能改进的数据和测试用例都可以在以下 jQuery 1.2.3 与 1.2.6 版本的 Google 表格 中找到(由于 Internet Explorer 6 和 Internet Explorer 7 的结果几乎相同,因此排除了 Internet Explorer 6 的结果)。

事件处理速度提高了 103%

在分析密集型应用程序代码(特别是拖放等操作)时,我们寻找可以对所有用户产生影响的通用更改方法。经常被调用的代码是 jQuery 事件处理程序,对其进行任何优化都会极大地提高所有由此产生的经常被调用的事件的性能。通过专注于此处的改进,您拥有的所有经常被调用的事件都应该看到立竿见影的效果。

CSS 选择器速度提高了 13%

对 jQuery 内部方法进行了一些优化,极大地提高了它们的性能,同时为 jQuery 中一些最常用的代码(如 CSS 选择器代码)提供了可衡量的益处。

例如,jQuery.map() 方法现在快了 866%,而 jQuery.extend() 快了 19%。这两个变化使得整个库的性能大幅提升。

.offset() 快了 21%

加上对 jQuery 事件处理代码的改进,.offset() 的优化使密集型鼠标操作变得更快。例如,由于这些更改,jQuery UI 的拖放代码现在快了 300% 以上(使您能够实现更快、更平滑的拖放操作)。

.css() 快了 25%

一个经常被调用(在内部和外部)的方法。对这个方法的优化很容易在其他方法(如 .offset())中体现出来。

新功能和重大变化

尺寸插件现在是核心的一部分

由 Brandon Aaron 编写的尺寸插件的剩余方法已被引入 jQuery 核心,并增加了额外的 bug 修复和性能改进。这个插件在开发者和插件作者中得到了广泛的使用,并已成为 jQuery 生态系统中不可或缺的一部分。在过去几个版本中,我们一直在逐步引入尺寸插件中最常用的方法,但随着 1.2.6 版本的发布,所有剩余的方法现在都是核心的一部分。

如果您将您的 jQuery 版本升级到 1.2.6,您现在可以选择将尺寸插件从您的代码中排除。

尺寸插件的完整文档可以在 jQuery API 文档站点 上找到(并且正在整合到 jQuery 核心文档中)。

.attr() 大修

.attr() 方法已经完全大修(解决了大约 15 个未解决的 bug)。此外,该方法已得到简化和优化。

.toggle() 现在可以接受更多函数

历史上,jQuery 的 .toggle() 函数接受两个函数(以偶数/奇数方式切换)。但是,这已更改,因此可以提供任意数量的函数,并通过鼠标点击进行切换。

$("div").toggle(function(){
  $(this).removeClass("three").addClass("one");
}, function(){
  $(this).removeClass("one").addClass("two");
}, function(){
  $(this).removeClass("two").addClass("three");
});

您现在可以取消绑定绑定的 .toggle() 和 .one() 函数

function test(){ $(this).addClass("test"); }
$("div").one("click", test);
$("div").unbind("click", test);

$("div").toggle(test, test);
$("div").unbind("click", test);

.index() 支持 jQuery 集合

jQuery 的 .index() 函数允许您在 jQuery 集合中查找 DOM 元素的位置——现在您也可以指定一个 jQuery 集合(该集合的第一个元素将被提取并在原始集合中定位)。

var test = $("div.test");
$("div").index( test ) == 3

jQuery.makeArray 可以将任何东西转换为数组。

jQuery 的内部 .makeArray() 方法现在将任何类似数组的对象转换为一个新的数组。此外,它将所有其他对象包装为数组并返回结果集合。

jQuery.makeArray( document.getElementsByTagName("div") )
// => [ div, div, div ]

jQuery.makeArray( true )
// => [ true ]

jQuery.makeArray()
// => []

beforeSend 可以取消 Ajax 调用

beforeSend Ajax 回调允许开发者在请求发生之前执行一段代码——现在这段代码也可以验证某些参数的完整性并取消由此产生的 Ajax 请求(对于表单验证等任务很有用)。

$.ajax({
  beforeSend: function(){
    return $("#input").val() == "";
  },
  url: "test.php"
});

公开的速度

jQuery 有许多命名的动画速度(例如‘slow’、‘fast’ 和 ‘default’),您现在可以通过操作 jQuery.fx.speeds 对象,为动画速度提供您自己的名称或修改现有的名称。

jQuery.fx.speeds.slow = 1000;
$("#test").slideDown("slow");

jQuery 1.2.3 发布

发布日期 作者

这是 jQuery 1.2 的一个 bug 修复版本。您可以在 bug 跟踪器 上查看完整的修复列表。

下载

jQuery 1.2.3

.data() 和 .removeData()

这些方法补充了 jQuery 1.2 中引入的已包含的 jQuery.data 和 jQuery.removeData 方法。但是,重要的变化是它们已针对插件开发者进行了调整。您现在可以为数据添加命名空间——就像您可以为事件绑定/取消绑定那样。例如

  $("div").data("test", "original");
  $("div").data("test.plugin", "new data");
  alert( $("div").data("test") == "original" ); // true
  alert( $("div").data("test.plugin") == "new data" ); // true

此外,获取或设置数据值可以被插件覆盖。例如,以下代码来自最近更新的 jQuery UI 中的可拖动元素

  $(element).bind("setData.draggable", function(event, key, value){
     self.options[key] = value;
  }).bind("getData.draggable", function(event, key){
     return self.options[key];
  });

以上代码使得所有尝试获取和设置可拖动元素命名空间数据的行为都会被插件直接拦截和处理(而不是直接绑定到元素)。结果是用于处理插件内部数据的强大新接口。

.unbind(“.namespace”)

在 jQuery 1.2 中,您可以添加和删除带命名空间的事件,但是您始终必须包含要使用的事件类型的名称。有了这个添加,您现在可以删除所有与特定命名空间匹配的已绑定事件,例如

  $("div").bind("click.plugin", function(){});
  $("div").bind("mouseover.plugin", function(){});
  $("div").unbind(".plugin"); // All handlers removed

以上代码删除了所有在 “plugin” 命名空间内的已绑定事件处理程序。

jQuery 1.2.2 发布

发布日期 作者

这是 jQuery 1.2 的一个 bug 修复版本。您可以在 bug 跟踪器 上查看完整的修复列表。

下载

jQuery 1.2.2

重要变化

Brandon Aaron 和 David Serduke 为这个版本付出了很多努力。David 是 jQuery 核心开发团队的新成员,并一直在做出重大贡献——请帮助我们欢迎他!

主要而言,这是一个 bug 修复和优化版本。我们修复了 120 多个 bug,我们的测试套件现在拥有 1157 个以上的测试——我们对此感到非常自豪。

$(DOMElement) 的速度提高了 300%

我们再次对 jQuery 中最常用的功能进行了微调。具体而言,是指将 DOM 元素传递给 jQuery 函数。 (当您在代码中看到像 $(this) 这样的东西时,最常被使用。)

以下是一些您可以在所有主流浏览器中预期到的速度提升的快照。

浏览器 1.2.1 (ms) 1.2.2 (ms)
Firefox 2 0.041 0.015
Firefox 3 0.033 0.01
Safari 3 0.017 0.005
Opera 9 0.023 0.004
Internet Explorer 6 0.04 0.03

.ready() 大修

文档就绪函数已经很久没有得到额外的关注了。我们进行了一些特定的更改。

  • Internet Explorer 文档就绪功能得到了大幅提升。我们使用了一种受 Diego Perini 启发的新技术。它使我们不再需要使用 document.write(),这真是太棒了。
  • 除了 DOM 之外,所有浏览器现在都等待 CSS 就绪。实际上,它不仅仅是一个普通的文档就绪函数了——但我们发现,用户压倒性地需要等待文档样式生效(例如,知道一个元素是否可见,或者它的高度是多少)。具体而言,我们在 Safari 和 Opera 中添加了一些改进,使其成为可能。
  • $(document).bind("ready", fn); – 您现在可以通过传统的 .bind() 函数监听文档就绪事件。当然,.ready() 仍然按照您的预期工作。

.bind(“mouseenter”) / .bind(“mouseleave”)

作为 .hover() 函数核心的功能已被拆分为两个新的跨浏览器事件:mouseenter 和 mouseleave。它们不同于 mouseover 和 mouseout,因为当您在子元素中进出时,那些事件会触发(这通常不是想要的)。例如,以下两种方法都是有效的,并且在 jQuery 1.2.2 中完美地工作

$("li").hover(function(){
  $(this).addClass("hover");
}, function(){
  $(this).removeClass("hover");
});
$("li").bind("mouseenter", function(){
  $(this).addClass("hover");
}).bind("mouseleave", function(){
  $(this).removeClass("hover");
});

.bind(“mousewheel”)

我们有一个[http://dev.jquery.com/browser/trunk/plugins/mousewheel/jquery.mousewheel.js 新插件],由 Brandon Aaron 编写,基于新的事件 API,它为 jQuery 核心添加了鼠标滚轮事件支持。这将使您能够编写以下内容

$("div").bind("mousewheel", function(event, delta){
  if ( delta < 0 )
    $(this).append("up");
  else
    $(this).append("down");
});

复杂 :not()

虽然它不是 CSS 3 规范的一部分,但它一直是一个常见的特性请求——因此您现在可以在 :not() 选择器中使用复杂表达式。例如,以下内容现在可以工作

$(".hover:not(li.active)")
$("li:not(.active,.hover,:contains(test))")

接受标头

对于正常的 jQuery Ajax 操作,我们现在发送一个额外的 Accept 头部,以告知服务器我们正在查找哪种内容。如果指定了 dataType 参数,我们将为您处理所有头部设置。我们目前为每个 dataType 发送以下头部。

  • xml "application/xml, text/xml"
  • html "text/html"
  • script "text/javascript, application/javascript"
  • json "application/json, text/javascript"
  • text "text/plain"
  • 其他所有:"*/*"

错误修复

以下是一些经过重要改版的功能示例。

  • .clone() 重构
  • 脚本评估重构
  • height() / width() 重构
  • 跨帧 DOM 操作
  • 已解决一些内存泄漏问题

事件 API

有一个用于处理事件的新 API。您现在可以创建自己的自定义事件类型(具有自定义的设置和拆卸方式)。实际上,它允许您超越简单的事件触发,并为元素上的事件附加、处理和拆卸创建一个完整的方案。Brandon Aaron 创建了一个 [http://dev.jquery.com/browser/trunk/plugins/mousewheel/jquery.mousewheel.js 演示插件],您可以使用它来学习强大的新 API。