此版本主要用于修复 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 压缩版(压缩后 15kb)
- jQuery 打包版(30kb)
- jQuery 常规版(100kb)
性能改进
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 核心,以及其他错误修复和性能改进。此插件在开发人员和插件作者中得到了广泛使用,并且已成为 jQuery 生态系统的重要组成部分。在过去的几个版本中,我们一直在慢慢地将尺寸插件中最常用的方法引入核心,但在 1.2.6 版本中,所有剩余方法现在已成为核心的一部分。
如果您将 jQuery 升级到 1.2.6 版本,现在可以选择将尺寸插件排除在您的代码之外。
尺寸插件的完整文档可以在 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() 函数允许您在 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");