在 jQuery 发布两周年之际,我们很自豪地向您带来 jQuery 的全新版本。这主要是针对 jQuery 1.2 的错误修复版本。你可以在 错误跟踪器 上查看已修复内容的完整列表。
下载
jQuery 1.2.2:
如果你希望从 Subversion 仓库 中检出完整版本,你可以按照 以下说明 进行操作,并从以下位置检出源代码
svn co http://jqueryjs.googlecode.com/svn/tags/1.2.2
重要变更
Brandon Aaron 和 David Serduke 为这个版本付出了很多努力。David 是 jQuery 核心开发团队的新成员,并且一直在做出重要的贡献 - 请帮助我们欢迎他!
主要是,这是一个错误修复和优化版本。我们修复了超过 120 个 错误,我们的测试套件现在包含了超过 1157 个测试 - 我们对此非常自豪。
$(DOMElement) 的速度提升了 300%
我们再次采取措施微调 jQuery 中使用最频繁的功能。具体来说,就是将 DOM 元素传递给 jQuery 函数。(在你的代码中看到 $(this) 之类的代码时,最常使用这种方法。)
以下是一些你在所有主要浏览器中可以预期的速度提升的快速示例
浏览器 |
1.2.1(ms) |
1.2.2(ms) |
Firefox 2 |
0.041 |
0.015 |
Firefox 3 |
0.033 |
0.01 |
Safari 3 |
0.017 |
0.005 |
Opera 9 |
0.023 |
0.004 |
Internet Explorer 6 |
0.04 |
0.03 |
.ready() 大修
文档就绪函数已经很久没有得到过关注了。我们进行了一些特定的更改。
* Internet Explorer 文档就绪功能得到了大幅改进。我们使用了一种受 Diego Perini 启发的全新技术。它让我们不再需要使用 document.write(),这真是太棒了。
* 除了 DOM 之外,现在所有浏览器都会等待 CSS 就绪。实际上,它不再是一个普通的文档就绪功能了 - 但我们发现,用户压倒性地需要等待文档样式生效(例如,知道元素是否可见,或者它的高度是多少)。具体来说,我们在 Safari 和 Opera 中添加了一些改进,使其成为可能。
* $(document).bind("ready", fn);
- 你现在可以通过传统的 .bind() 函数来监听文档就绪事件。当然,.ready() 仍然像你预期的那样工作。
.bind(“mouseenter”) / .bind(“mouseleave”)
作为 .hover() 函数核心的功能已被拆分为两个新的跨浏览器事件:mouseenter 和 mouseleave。它们与 mouseover 和 mouseout 不同,因为那些事件会在你进入和离开子元素时触发(这通常不是我们想要的)。例如,以下两种方式都是有效的,并且在 jQuery 1.2.2 中完美地工作
$("li").hover(function(){
$(this).addClass("hover");
}, function(){
$(this).removeClass("hover");
});
$("li").bind("mouseenter", function(){
$(this).addClass("hover");
}).bind("mouseleave", function(){
$(this).removeClass("hover");
});
.bind(“mousewheel”)
我们有一个 新的插件,由 Brandon Aaron 编写,基于新的事件 API,它为 jQuery 核心添加了鼠标滚轮事件支持。这将允许你编写类似下面的代码
$("div").bind("mousewheel", function(event, delta){
if ( delta < 0 )
$(this).append("up");
else
$(this).append("down");
});
复杂 :not()
虽然它不是 CSS 3 规范的一部分,但它一直是一个常见的特性请求 - 因此你现在可以在你的 :not() 选择器中使用复杂的表达式。例如,以下表达式现在有效
$(".hover:not(li.active)")
$("li:not(.active,.hover,:contains(test))")
接受标头
对于普通的 jQuery Ajax 操作,我们现在发送一个额外的 Accept 标头,让服务器知道我们正在寻找哪种类型的内容。如果你指定了 dataType 参数,那么我们将为你处理所有标头设置。我们目前为每个 dataType 发送以下标头。
- xml "application/xml, text/xml"
- html "text/html"
- script "text/javascript, application/javascript"
- json "application/json, text/javascript"
- text "text/plain"
- 其他所有类型:"*/*"
错误修复
以下是一些经过重要改进的功能的示例。
* .clone() 大修
* 脚本评估大修
* height() / width() 大修
* 跨框架 DOM 操作
* 修复了一些内存泄漏
事件 API
有一个新的 API 用于处理事件。你現在可以创建自己的自定义事件类型(并使用自定义的方式进行设置和拆卸)。实际上,它允许你超越简单的事件触发,并创建一个完整的方案,用于在元素上附加、处理和拆卸事件。由 Brandon Aaron 创建的 演示插件 可以帮助你学习这个功能强大的新 API。