jQuery 1.2.2: 二周年礼物

发布日期: 作者:

在 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 (毫秒) 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))")

接受报头

对于普通的 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。

jQuery 1.2.2 发布

发布日期: 作者:

这是一个针对 jQuery 1.2 的错误修复版本。您可以在 错误追踪器 上查看完整的修复列表。

下载

jQuery 1.2.2

重要更改

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

主要来说,这是一个错误修复和优化版本。我们修复了超过 120 个错误,并且我们的测试套件现在包含了超过 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”)

我们有一个 [http://dev.jquery.com/browser/trunk/plugins/mousewheel/jquery.mousewheel.js 新的插件],由 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 创建了一个 [http://dev.jquery.com/browser/trunk/plugins/mousewheel/jquery.mousewheel.js 演示插件],您可以使用它来学习这个功能强大的新 API。

Google 使用 jQuery

发布日期: 作者:

Google 重新发布了他们的 Google Code 网站,采用了全新的设计,而且您猜对了,使用了 jQuery!Google 员工兼 Ajaxian.com 联合创始人 Dion Almaer 在 他的博客上讨论了重新设计,并提到了 Google 团队现在使用 jQuery 为 Google Code 网站提供支持。 DeWitt Clinton 也在 Google Code 博客上讨论了此事

例如,搜索结果页面使用 AJAX 搜索 API 和自定义搜索引擎的组合。主页小工具使用 AJAX Feed API 和 Google 阅读器 Feed。视频由 YouTube API 提供支持,博客由 Blogger API 提供支持,活动由 Google 日历 API 提供支持,指标由 Google Analytics 提供支持,论坛由 Google Groups 提供支持,等等。我们很高兴使用 jQuery,这个很棒的开源 JavaScript 库(不是我们的,我们只是粉丝),来帮助为每个页面提供动力。敬请关注 - 在接下来的几周,我们将提供有关我们如何使用开放技术构建 Google Code 各个部分的详细文章和教程。

作为 Ajax 和 JavaScript 领域的先驱,Google 使用 jQuery 来帮助他们构建这个网站,这对我们来说非常令人兴奋,我们期待在未来继续帮助 Google 团队。

jQuery 实战 (享受 30% 的折扣!)

发表于 作者

大家好,

正如你们中许多人已经知道的那样,我一直致力于 jQuery 实战,这是一本关于 jQuery 的书籍,由 Manning 出版社出版。

几乎整本书都可以在 MEAP(Manning 早期访问计划)上获得,它将于今年 12 月出版。

这本书本身非常棒。它试图通过一个有用的叙述来提供您需要的信息,包括对 jQuery 的某些部分的动机。在我看来,这本书最棒的事情之一是实验室,它可以让您在不构建整个测试用例的情况下测试 jQuery 的各个部分。例如,有一个选择器实验室,它可以让您直观地看到哪些元素将被给定的 jQuery 选择器选中,以及一个拖放实验室,它可以让您通过单选按钮测试拖放选项,然后快速查看结果。

它是目前唯一涵盖 jQuery 1.2 以及 jQuery UI 重要部分(包括拖放基元中未记录的回调对象)的书籍。在本书的结尾,您将获得完整的章节示例(我最喜欢的是 Ajax 章节,它涵盖了构建一个销售靴子的 Ajax 化商店 ;) ),并且重点关注 jQuery 最佳实践和非侵入式脚本。

这本书本身完全体现了 jQuery 的精神:简洁明了,同时涵盖了完全理解所讨论主题(尤其是事件绑定和 Ajax 等非平凡主题)所需的重要背景材料。

不多说了,您可以从 Manning 网站 购买本书(您现在就可以获得预发布内容,并在 12 月发布时获得完整书籍)。如果您在 10 月底之前使用优惠券代码 JQM30,您还将获得 30% 的折扣。

jQuery UI:交互和控件

发表于 作者
在 jQueryCamp Boston 与 jQuery UI 团队会面!
今年 10 月,我们将举办一场免费的一日会议,大多数 jQuery 和 jQuery UI 团队成员都会参加。来吧,提出问题,并结识那些构建您喜爱的库的人!

User Interface - Green

今天,我们很高兴地宣布一个全新的库:jQuery UI。jQuery UI 是一个完全主题化的交互和控件库,建立在 jQuery 之上。

您可以在其网站上找到有关 jQuery UI 的所有信息
http://ui.jquery.com/

jQuery UI 标志着 jQuery 项目的全新分支的开始,该分支将专注于开发高质量、可重用、可用于您应用程序的组件。通常,这些组件直接来自传统的 jQuery 插件,但具有严格的编码、文档、主题化和演示标准。我们希望您像我们一样享受这种新的质量水平。

我们推出一个完整的主题:Flora(由 Tom 设计)以及两个部分完成的主题:Light 和 Dark(由 Sean 设计)。在接下来的一个星期内,我们将宣布新的主题竞赛的详细信息,以及构建自己的 jQuery UI 主题所需的一切。

注意:jQuery UI 要求您使用至少 jQuery 1.2.1 或更高版本。

请您理解,一个全新的项目难免会有一些毛刺,所以请将错误提交到 错误跟踪器 中的“UI”组件,并在 jQuery UI 邮件列表 上进行讨论。感谢您的帮助。

不多说了,jQuery UI 就是这个样子!

演示应用程序:高级图片库

(目前在 IE 和 Safari 中存在问题 - 我们正在解决一些问题,这些问题应该会在今天晚些时候解决。)

演示应用程序:条形图导航

(目前仅适用于支持 Canvas 的浏览器:Firefox、Safari 和 Opera。)

功能:鼠标交互

可拖动元素 (文档)

可放置元素 (文档)

可排序元素 (文档)

可选择元素 (文档)

可调整大小元素 (文档)

功能:控件

手风琴 (文档)

日历 (文档)

对话框 (文档)

滑块 (文档)

表格排序器 (文档)

选项卡 (文档)

功能:效果

放大镜 (文档)

阴影 (文档)

贡献者

这是十多个人数月工作的成果 - 其中许多人都是 jQuery 的首次贡献者。

目前,这是一个帮助过我们的人员以及他们帮助过的事情的粗略列表。(如果我忘记了任何人,请告诉我!)

  • Paul B(可拖动元素、可放置元素、可排序元素、可调整大小元素、滑块、阴影、放大镜、画廊应用程序)
  • John(文档、主题、演示、UI 网站、猫群管理)
  • Richard(树、可选择元素、可排序元素、对话框、许多错误修复)
  • Tom(Flora 主题、UI 网站和 UI 徽标)
  • Sean(主题、Dark 和 Light 主题、阴影、表单)
  • Klaus(选项卡)
  • Joern(手风琴)
  • Christian(表格排序器)
  • Adel(下载器、客户端)
  • Paul H(下载器、服务器端)
  • Marc(日历)

感谢以下人员的额外帮助:Tane、Micheil、Gilles、Dmitri 和 Yehuda。他们的许多工作将在下一个版本的 jQuery UI 中体现(包括菜单、工具栏、上传器、拆分器和富文本编辑器)。

我想详细介绍一下每个人对这个项目的贡献,以便单独感谢每个人,因为每个人都出色地合作,使之成为现实。特别是 Paul、Tom、Richard 和 Sean - 你们做得非常棒!

再次感谢大家享受这份新作品 - 请您理解,它还有一些毛刺。如果您发现任何错误,请在 错误跟踪器 中的“UI”组件中发布它们。

与往常一样,欢迎反馈!如果您想告诉我们您的想法,请在 jQuery UI 邮件列表 上发布帖子,或加入 irc.freenode.net #jquery-ui,因为那里是找到我们的最佳地点。

享受!

如果您喜欢看到的内容,请随时 digg 一下

jQuery 1.2.1:1.2 的快速修复

发表于 作者

jQuery 1.2.1 是对 jQuery 1.2 的错误修复版本。您可以在 错误跟踪器 上查看已修复内容的完整列表。

下载

jQuery 1.2.1:

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

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

重要更改

相对动画

新的相对动画的 API 中存在一个严重错误,导致与现有动画样式发生冲突。为了解决这个问题,为了执行相对动画,您现在必须使用以下语法

 $(...).animate({ height: "+=50px", width: "-=20%", fontSize: "+=2em" });

其中 += 表示“添加到当前位置”,-= 表示“从当前位置减去”。

.eq()

由于一些非常有说服力的论据,以及经过深思熟虑,.eq() 已经恢复。许多插件依赖于这个单一方法 - 而由 .slice() 提供的替代方案 simply wasn’t as elegant a solution as what was originally provided.

jQuery 1.2.1 发布

发表于 作者

这是对 jQuery 1.2 的错误修复版本。您可以在 错误跟踪器 上查看已修复内容的完整列表。

下载

jQuery 压缩版 (压缩后 14kb)
jQuery 打包版 (26kb)
普通版 (77kb)

重要更改

相对动画

新的相对动画的 API 中存在一个严重错误,导致与现有动画样式发生冲突。为了解决这个问题,为了执行相对动画,您现在必须使用以下语法
$(...).animate({ height: "+=50px", width: "-=20%", fontSize: "+=2em" });

其中 += 表示“添加到当前位置”,-= 表示“从当前位置减去”。

.eq()

由于一些非常有说服力的论据,以及经过大量的重新考虑,.eq() 方法被重新引入。许多插件依赖于这个方法,而 .slice() 提供的替代方案并没有原始方案那么优雅。

jQuery 1.2: jQuery.extend(“Awesome”)

发布日期: 作者:
参加 jQueryCamp Boston!
今年 10 月我们将举办为期一天的免费会议,jQuery 团队的大多数成员都会出席。欢迎大家前来,提问并与构建您喜欢的库的人员见面!

这是一个重大的 jQuery 新版本,经过长时间的开发,现在已经准备好供您使用!

我们已经将完整的 jQuery 1.2 版本说明 放到一个单独的页面上,因为有很多内容需要仔细阅读。请注意,1.2 版本中删除了一些功能,因此请务必阅读有关 如何升级 的说明,然后再升级。

和往常一样,可能会存在一些 bug,请将其提交到 bug 跟踪器,我们会尽快解决。您可能在本周内看到一个小的 bug 修复版本,以解决任何紧急问题。

jQuery 1.2 (完整版本说明)

下载

jQuery 1.2: (如何升级)

插件:

新功能

  • 选择器
    •  :has(selector)
    •  :header
    •  :animated
    • XPath 选择器插件
  • 属性
    • .val() 大修
  • 遍历
    • .map()
    • .prevAll() / .nextAll()
    • .slice()
    • .hasClass()
    • .andSelf()
    • .contents()
  • 操作
    • .wrapInner() / .wrapAll()
    • .replaceWith() / .replaceAll()
    • 事件克隆
  • CSS
    • .offset()
    • 文档和窗口的 .height() / .width()
  • Ajax
    • 部分 .load()
    • 跨域 getScript
    • JSONP
    • .serialize() 大修
    • 禁用缓存
  • 效果
    • .stop()
    • 百分比/em 动画
    • 颜色动画
    • 相对动画
    • 队列控制
    •  :animated
    • step: 函数
  • 活动
    • 命名空间事件
    • .triggerHandler()
  • 内部
    • 文档迁移
    • 扩展管理


星期天,星期天,星期天!

本周日,9 月 16 日,全新的 jQuery UI 将来到您的城市。拖放、可拖动、可调整大小、阴影、滑块、可排序、选项卡、手风琴、可选择、树和模态框。 全部经过完整文档记录、演示、主题化,并且是 100% 免费的开源软件。

为了让您对它有所期待,这里提供一个简短的预览

Sexy jQuery UI

欢迎您 Digg 此帖子