jQuery 1.2.2:二周年生日礼物

发布日期: 作者:

在 jQuery 发布两周年之际,我们很荣幸地向您推出 全新的 jQuery 版本。这主要是一个针对 jQuery 1.2 的 bug 修复版本。您可以在 bug 跟踪器 上查看已修复问题的完整列表。

下载

jQuery 1.2.2:

如果您想从 Subversion 代码库 中检出完整版本,您可以按照 以下说明 从以下位置检出源代码

svn co http://jqueryjs.googlecode.com/svn/tags/1.2.2

重要变更

Brandon Aaron 和 David Serduke 为此版本付出了很多努力。David 是 jQuery 核心开发团队的新成员,并且一直在做出重大贡献 - 请帮助我们欢迎他!

主要来说,这是一个 bug 修复和优化版本。我们修复了超过 120 个 bug,并且我们的测试套件现在包含了超过 1157 个测试 - 我们对此感到非常自豪。

$(DOMElement) 速度提升 300%

我们再次对 jQuery 中使用最频繁的功能进行了微调。具体来说,是指将 DOM 元素传递给 jQuery 函数的操作。(最常在代码中看到 $(this) 这种用法。)

以下是在所有主要浏览器中可以预期到的速度提升情况。

浏览器 1.2.1 (毫秒) 1.2.2 (毫秒)
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))")

Accept 头部

对于正常的 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"
  • 其他所有:"*/*"

Bug 修复

以下是一些经历了重要改进的功能示例。

* .clone() 大修
* 脚本评估大修
* height() / width() 大修
* 跨框架 DOM 操作
* 已解决一些内存泄漏

事件 API

有一个新的 API 用于处理事件。您现在可以创建自己的自定义事件类型(带有自定义的设置和拆卸方法)。实际上,它允许您超越简单的事件触发,并创建一个完整的方案来附加、处理和拆卸元素上的事件。由 Brandon Aaron 创建的 演示插件 可以帮助您学习这个强大的新 API。

关于“jQuery 1.2.2:二周年生日礼物”的 51 条评论

  1. Pingback: jQuery 1.2.2:二周年生日礼物 | Development Feeds