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 Spreadsheet 中找到(由于 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 核心,以及其他错误修复和性能改进。该插件在开发人员和插件作者中得到了广泛使用,并已成为 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() 函数允许您在 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 有一些命名的动画速度(例如“慢”、“快”和“默认”),您现在可以通过操作 jQuery.fx.speeds 对象为动画速度提供自己的名称,或修改现有名称。
jQuery.fx.speeds.slow = 1000;
$("#test").slideDown("slow");