jQuery 1.2.6 主要是一个针对 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
如果您想从 Subversion 仓库 检出完整版本,您可以 按照说明 从以下位置检出源代码
svn co http://jqueryjs.googlecode.com/svn/tags/1.2.6
性能改进
再次强调,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,您可以选择从您的代码中排除尺寸插件。
尺寸插件的完整文档可以在 jQuery 文档网站 上找到(并且正在与核心 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");