这是一个主要针对 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 Libraries API
- jQuery 最小化版 (使用 gzipping 压缩后为 15kb)
- jQuery 打包版 (30kb)
- jQuery 正式版 (100kb)
性能改进
再次强调,jQuery 团队努力工作,在这个版本中带来了巨大的性能提升。与之前的版本一样,我们扩展到 jQuery 框架的许多领域,寻找常见的痛点,并提供解决方案。
以下性能改进的所有数据和测试用例都可以在以下 jQuery 1.2.3 v. 1.2.6 Google 表格 中找到(由于结果几乎相同,因此排除了 Internet Explorer 6 的结果,而选择了 Internet Explorer 7)。
事件处理速度提升 103%
在分析密集的应用程序代码(特别是拖放等操作)时,我们寻找可以进行通用更改的方法,这些更改会影响所有用户。一个经常被调用的代码片段是 jQuery 事件处理程序,对其进行任何优化都会极大地提高所有结果频繁调用事件的性能。通过专注于这里的改进,您应该看到所有频繁调用的事件立即受益。
CSS 选择器速度提升 13%
对内部 jQuery 方法进行了一些优化,极大地提高了它们的性能,并为 jQuery 中一些最常用的代码(例如 CSS 选择器代码)带来了可衡量的收益。
例如,jQuery.map() 方法现在速度提升了 866%,而 jQuery.extend() 速度提升了 19%。这两个更改使得整个库的性能都得到了显著提升。
.offset() 速度提升 21%
与 .offset() 代码的改进一起,密集的鼠标操作变得更快。例如,jQuery UI 的拖放代码由于这些更改现在速度提升了 300% 以上(让您能够实现更快、更流畅的拖放操作)。
.css() 速度提升 25%
这是一个经常被调用的方法(内部和外部)。对该方法的优化很容易在其他方法中感受到(例如 .offset())。
新功能和主要变更
尺寸插件现在是核心的一部分
Brandon Aaron 的尺寸插件的剩余方法已被引入 jQuery 核心,并附带了额外的错误修复和性能改进。这个插件在开发者和插件作者中得到了广泛的应用,并已成为 jQuery 生态系统的重要组成部分。在过去的几个版本中,我们一直在逐步引入尺寸插件中最常用的方法——但随着 1.2.6 版本的发布,所有剩余方法现在都是核心的一部分。
如果您正在升级您的 jQuery 副本到版本 1.2.6,您可以选择从您的代码中排除尺寸插件。
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");
