此版本主要是针对 jQuery 1.2 的错误修复。您可以在 错误跟踪器 上查看修复的完整列表。
这是紧随 jQuery 1.2.3 之后的下一个版本。版本 1.2.4 和 1.2.5 被跳过(1.2.4 构建错误,实际上与 1.2.3 相同,而 1.2.5 缺少补丁)。
整个 jQuery 团队在将此版本整合在一起方面做得非常出色 - 我想借此机会感谢他们所有人的持续努力。
我还想借此机会欢迎 Ariel Flesler 加入 jQuery 核心开发团队。他在将此版本整合在一起方面提供了宝贵的帮助 - 贡献了错误修复、性能改进、功能和测试用例。您可以在整个版本中看到他辛勤工作的成果。欢迎 Ariel 并感谢他对所有贡献!
下载
jQuery 1.2.6
- 推荐 使用 Google 托管的代码:AJAX 库 API
- jQuery 压缩版(使用 gzip 压缩后 15kb)
- jQuery 打包版(30kb)
- jQuery 常规版(100kb)
性能改进
jQuery 团队再次努力在这次版本中带来了巨大的性能改进。与之前的版本一样,我们已经扩展到关注 jQuery 框架的许多领域,寻找常见的痛点,并提供解决方案。
以下所有性能改进的数据和测试用例都可以在以下 jQuery 1.2.3 与 1.2.6 的 Google 电子表格 中找到(由于 Internet Explorer 6 和 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 开发的 Dimensions 插件的剩余方法已引入 jQuery 核心,并附带其他错误修复和性能改进。此插件在开发人员和插件作者中得到了相当广泛的使用,并已成为 jQuery 生态系统中不可或缺的一部分。在过去的几个版本中,我们一直在慢慢地引入 Dimensions 插件中最常用的方法 - 但随着 1.2.6 版本的发布,所有剩余的方法现在都是核心的一部分。
如果您要将 jQuery 升级到 1.2.6 版,现在可以选择从代码中排除 Dimensions 插件。
Dimensions 的完整文档可以在 jQuery API 文档网站 上找到(目前正在将其与 jQuery 核心文档集成在一起)。
.attr() 大修
.attr() 方法已被彻底大修(解决大约 15 个未解决的错误)。此外,该方法已被显著简化和优化。
.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() 函数允许您找到 DOM 元素在 jQuery 集合中的位置 - 现在您还可以指定一个 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");