jQuery 1.1.4:更快、更多测试、为 1.2 做好准备

发布于

我们很高兴地宣布最新版本的 jQuery:jQuery 1.1.4。除非出现严重错误,否则此版本将是 1.1.x 分支的最后一个版本——它将引导我们进入 9 月份发布的 jQuery 1.2

您可以从 jQuery Google Code 页面下载此版本

下载

改进

除了所有正常的 错误修复 外,此版本还包含一些改进。

任意名称 jQuery

jQuery 迈出了一大步,成为第一个能够完全重命名自身的重大 JavaScript 库。以前,提供了重命名常用的“$”快捷方式为“jQuery”的功能——但现在您还可以重命名“$”和“jQuery”。这带来了两个极佳的结果

  • 现在您可以在同一页面上同时包含多个版本的 jQuery。
  • 现在您可以在其他对象和库的命名空间中嵌入 jQuery,例如
    // With the Dojo Toolkit
    dojo.jquery = jQuery.noConflict(true);
    dojo.jquery("#elem div").slideDown("slow");
    // or with Yahoo UI
    YAHOO.query = jQuery.noConflict(true);
    YAHOO.query("span.hidden").removeClass("hidden");

速度改进

如果没有速度改进,版本发布还有什么意义呢?我们利用了这次机会,超越了以前发布的所有速度测试套件,并改进了 jQuery 中最常用的三个部分的速度:ID 选择器、标签名称选择器和 each() 循环。使这些项目尽可能快至关重要,因为它们有可能被无限次地重复使用。

这是用来分析三个更改速度的 测试套件

$(“#id”) 改进

浏览器 jQuery 1.1.3 jQuery 1.1.4 % 改进
IE 6 651ms 70ms 830%
Firefox 2 1355ms 27ms 4919%
Safari 3 101ms 14ms 620%
Opera 9 270ms 62ms 335%
平均改进 1676%

$(“elem”) 改进

浏览器 jQuery 1.1.3 jQuery 1.1.4 % 改进
IE 6 661ms 451ms 47%
Firefox 2 1717ms 143ms 1100%
Safari 3 99ms 83ms 19%
Opera 9 226ms 198ms 14%
平均改进 295%

.each() 改进

浏览器 jQuery 1.1.3 jQuery 1.1.4 % 改进
IE 6 200ms 30ms 567%
Firefox 2 468ms 29ms 1514%
Safari 3 17ms 11ms 54%
Opera 9 45ms 25ms 80%
平均改进 554%

测试套件大修

这是一个非常重要的消息——对于大多数开发者来说应该尤其如此。从根本上来说,jQuery 测试套件 已完全重新设计并进行了改进以提高稳定性。一大批全新的动画和 Ajax 测试已被集成,使 jQuery 的总测试数量达到超过 800 个测试

此外,测试套件 在我们支持的所有主要浏览器中都能完美通过,没有任何错误:Firefox 2、Safari 3、Internet Explorer 6 和 Opera 9(为了简洁起见,未显示 Safari 2 和 IE 7)。证据

将来,我们将努力提高对 jQuery 事件、属性和 CSS 部分的覆盖范围——这无疑很快将使我们拥有超过 1000 个测试。

此外,需要注意的是,jQuery 测试套件现在已嵌入 Mozilla 测试套件中——它针对即将发布的 Firefox 3 版本的每个提交运行。您可以放心,在最新版本的 Firefox 中,一切都将按预期工作。

错误修复

此版本修复了 53 个工单。您可以在 错误跟踪器 上阅读完整详细信息(包括在 jQuery 1.1.3.1 中修复的错误)。

解决了许多重大问题,包括与 HTML 脚本评估、Safari CSS 计算样式访问和 Ajax 设置操作相关的问题。

新功能

引入了一些新功能。其中前两个,.slice() 和 :has(),将成为 jQuery 1.2 的一部分,但它们的存在是由一些弃用的功能所强制的(见下文)。对 extend() 和 noConflict() 的新更改是为了解决 jQuery 中一些长期存在的错误。

.slice()

您可能已经认识到 JavaScript 数组中存在的 .slice() 方法的这个方法名称——您很幸运,因为它行为完全相同。对于分解 jQuery 对象并获取其中的元素,这是一个很棒的方法。以下所有用法都是使用 slice() 方法的有效方式

$("div").slice(0,1); // First div
$("div").slice(-1); // Last div
$("div").slice(1,-1); // All divs but the first and last
$("div").slice(1,3); // The second and third div
$("div").slice(7,8); // The eighth div

:has()

此新选择器取代了当前检查另一个元素内部的元素的方法(div[p])。现在,您可以像使用该特定 XPath 选择器一样使用此选择器,如下所示

// All divs with a paragraph inside
$("div:has(p)")
// All anchors with an image inside
$("a:has(img)") 
// All divs that have an anchor inside that have an image inside
$("div:has(a:has(img))")

深度递归.extend()

这是 jQuery .extend() 方法中经常被请求添加的功能。此更改允许您深度合并嵌套对象(而不是让它们互相覆盖)。通过示例可以最好地说明这一点

// Normal .extend()
jQuery.extend(
  { name: "John", location: { city: "Boston" } },
  { last: "Resig", location: { state: "MA" } }
);
// Result:
// => { name: "John", last: "Resig", location: { state: "MA" } }
// New Deep .extend()
jQuery.extend( true,
  { name: "John", location: { city: "Boston" } },
  { last: "Resig", location: { state: "MA" } }
);
// Result:
// => { name: "John", last: "Resig",
//      location: { city: "Boston", state: "MA" } }

.noConflict(true)

如前所述,对 .noConflict() 的此项添加允许您完全重命名“jQuery”命名空间和“$”快捷方式,同时还会回滚这些引入可能进行的任何更改。您可以像这样使用此新快捷方式

// Give jQuery a custom name:
var jq = jQuery.noConflict(true);
jq("#id div").hide();

// Both Fail - $ and jQuery have been renamed:
$("#id div").hide();
jQuery("#id div").hide();

此技巧也可以用来将 jQuery 推入现有的命名空间,如下所示

// Put jQuery in a namespace:
var obj = {};
obj.jq = jQuery.noConflict(true);
obj.jq("#id div").hide();

已弃用的功能

我们在 jQuery 1.1.4 中弃用了一些方法,为即将发布的 jQuery 1.2 中的 API 更改做准备。在可能的情况下,我们提供了执行操作的备用方法。

与 jQuery 1.1 版本一样,jQuery 1.2 将提供一个向后兼容插件。因此,如果您希望继续使用这些特定技术,您将能够使用该插件并继续使用它们。

此外,为了处理 XPath 更改,将发布另一个独立的插件,该插件将处理 jQuery 中的 XPath 选择器功能。该插件将在 jQuery 1.2 版本发布后提供。

选择器

$("div//p") XPath 后代选择器
请使用 CSS$("div p")选择器代替。或者,在发布 jQuery 1.2 后,使用新的 XPath 插件。

$("div/p") XPath 子选择器
请使用 CSS$("div > p")选择器代替。或者,在发布 jQuery 1.2 后,使用新的 XPath 插件。

$("p/../div") XPath 父选择器
请使用$("p").parent("div")选择器代替。或者,在发布 jQuery 1.2 后,使用新的 XPath 插件。

$("div[p]") XPath 包含谓词选择器
请使用新的$("div:has(p)")选择器代替。或者,在发布 jQuery 1.2 后,使用新的 XPath 插件。

$("a[@href]") XPath 属性选择器
注意:虽然此选择器在此版本中被弃用,但它不会在 jQuery 1.2 中被移除。在 jQuery 1.2 中,建议您使用 CSS 选择器$("a[href]")代替。或者,在发布 jQuery 1.2 后,使用新的 XPath 插件。

DOM 操作

$("div").clone(false)
使用参数调用 clone 方法已被弃用(clone 方法本身将保留)。不应再调用.clone(false),而应改为.clone().empty()

DOM 遍历

$("div").eq(0)
此方法已被弃用,因为现在可以使用新的 .slice() 方法(它与数组的 slice 方法行为相同)。您可以像这样复制 .eq()

$("div").slice(0,1);

此外,.eq(0) 可以通过以下方式复制

$("div:eq(0)")
$("div:first")

$("div").lt(2)
此方法已被弃用,因为现在可以使用新的 .slice() 方法(它与数组的 slice 方法行为相同)。您可以像这样复制 .lt()

$("div").slice(0,2);

此外,.lt(2) 可以通过以下方式复制

$("div:lt(2)")

$("div").gt(2)
此方法已被弃用,因为现在可以使用新的 .slice() 方法(它与数组的 slice 方法行为相同)。您可以像这样复制 .gt()

$("div").slice(3);

此外,.gt(2) 可以通过以下方式复制

$("div:gt(2)")

Ajax

$("#elem").loadIfModified("some.php")
此便利方法将被移除,以便使用 $.ajax() 的长形式

$.ajax({
  url: "some.php",
  ifModified: true,
  success: function(html){
    $("#elem").html(html);
  }
});

$.getIfModified("some.php")
此便利方法将被移除,以便使用 $.ajax() 的长形式

$.ajax({
  url: "some.php",
  ifModified: true
});

$.ajaxTimeout(3000)
此便利方法将被移除,以便使用更明确的 $.ajaxSetup() 的长形式

$.ajaxSetup({timeout: 3000});

$(...).evalScripts()
jQuery 中不再需要此方法——在将 HTML 字符串注入文档时,所有包含的脚本都会自动进行评估。不需要替代方法。


与往常一样,如果您在 jQuery 1.1.3.1 和 jQuery 1.1.4 之间遇到任何错误,请告知我们。谢谢!

SF jQuery 会议和 Ajax 体验

发布于

SF jQuery 会议和 Ajax 体验西区

2007 年 Ajax 体验西区
来自 Ajaxian 和 TechTarget 的优秀人士共同举办了一场精彩的会议,时间为 7 月 25-27 日。演讲者来自各个领域,谈论着丰富网页开发领域的最新进展。查看完整的演讲者名单和 日程安排。演讲者包括 Mozilla 的首席技术官、JavaScript 的创建者 Brendan Eich。Internet Explorer 平台架构师 Chris Wilson 和 Adobe 的首席软件架构师 Kevin Lynch。会议有望成为一个充满活力且有趣的论坛。

更令人兴奋的是,将会有两位 jQuery 代表发言:John ResigGlen Lipka

John 将进行 3 场演讲,其中两场关于 jQuery

此外,John 还将在周五的午餐时间参加一个小组讨论,探讨 Ajax 的未来。

Glen 将发表关于 jQuery 的演讲

届时将会有许多其他 jQuery 用户和团队成员参加(包括 Yehuda KatzMichael Geary)。

SF jQuery 会议

7 月 26 日,我们借此机会邀请 jQuery 社区的每一个人到 Gordon Biersch 旧金山啤酒厂 参加聚会,一起喝点酒,吃点小吃,调试代码。我们是开源的,所以 BYOCC(自带信用卡)。

Yehuda Katz 为前 1000 25 个购买饮料招待其他社区成员的 jQueriers 提供了特别的 jQuery SWAG。此外,我们还有一些全新的 Learning jQuery 书籍 的额外副本,作者是 Karl SwedbergJonathan Chaffer

希望您能来。请 报名参加,我们到时见!

更多信息
http://upcoming.yahoo.com/event/220122/

jQuery 1.1.3.1

发布时间 作者

这是一个针对 jQuery 1.1.3 的快速错误修复版本。在 1.1.3 版本发布后,出现了大约六个重大问题,我们认为这些问题非常重要,需要立即解决,并进行后续发布。可以在 错误跟踪器 上找到已解决问题的完整列表。

如果您还没有升级到 1.1.3,请直接升级到 1.1.3.1。此外,如果您在使用 1.1.3 时遇到任何问题,请尝试使用此版本。

您可以从 jQuery Google Code 页面下载此版本

下载

与往常一样,如果您在使用过程中遇到任何问题,请向 jQuery 错误跟踪器 提交错误报告。

关于客户端表单验证和框架

发布时间 作者

在 Interaction Design Blog 上有一篇关于 客户端表单验证 的好文章。它描述了在构建自己的客户端验证框架时需要记住的重要事项。

当然,除了构建自己的框架之外,还可以使用 现有的框架。这种方法带来了一些重要的优势,其中包括“只要有足够的眼睛,所有错误都是浅显的”这一原则。

让我们看看验证插件目前在文章中列出的要点上的表现如何

1. 使用表单验证框架或表单验证库

已验证。

2. 专注于解决主要的验证问题

一旦您开始开发和实施验证,就很容易试图解决所有类型的输入所需的所有潜在验证。我的建议是尝试在前端验证中捕获 75-85% 的潜在用户输入错误。试图捕获所有错误会导致以下问题

  • 代码膨胀,您的框架会变得太大
  • 客户端验证测试几乎不可能,因为存在太多可能出错的验证组合
  • 业务规则将迁移到前端。(稍后将介绍如何使用 Ajax 避免这种情况)

好吧,代码膨胀是一个问题,我试图通过大量的重构来解决。当前代码库有 1446 行(大约一半是内联文档)。几周前,Dan G. Switzer 查看了插件,并在几小时内为特定代码相关问题提供了极大的帮助。

关于测试:验证插件的当前测试套件运行 65 个测试,包含 350 多个断言。jQuery 的测试套件运行大约 500 个断言。由于我尽可能地为所有出现的错误添加了测试,因此似乎代码覆盖率很高。回归问题很可能被测试套件捕获,并且它在开发过程中也提供了很大的帮助。

针对浏览器事件和 AJAX 的测试仍然是一项非常困难的任务,即使使用 jQuery 测试套件中的 AJAX 支持也是如此。

关于业务规则迁移到前端:这是一个设计和架构问题。在即将发布的 1.2 版本中,使用 AJAX 避免这种情况将得到支持。

3. 在提交表单之前进行表单验证

这里的意思是在用户输入内容时进行验证,而不是等待 submit 事件。1.0 版本之前允许您指定一个事件来检查单个元素,例如 blur 或 keyup。这在某些情况下有效,但在其他情况下却很烦人,例如用户点击输入框并收到烦人的错误消息。为了解决这些问题,在 1.1 中发布了一个更复杂的系统。基本上,插件会等待用户在模糊了一个输入不完整的字段后才进行验证。如果该字段已被标记为无效(例如,在尝试提交无效表单后),则所有元素都会在 keyup(文本输入框)或 click(复选框、单选按钮)时进行验证。当前的实现还不完美,当然欢迎提供反馈。

4. 使用 Ajax 表单验证进行业务数据输入

1.2 中的 AJAX 验证的简要预告

$("#myform").validate({
  rules: {
    username: {
      required: true,
      minLength: 2,
      remote: "users.php"
    }
  },
  messages: {
    username: {
      required: "Enter your username",
      minLength: "At least 2 characters are necessary",
      remote: String.format("The name {0} is already in use")
    }
  }
});

API 允许您对远程验证使用与本地验证相同的声明性样式。String.format 创建另一个函数,该函数稍后使用用户输入的值调用,从而生成类似“名称 asdf 已经存在”这样的错误消息。

查看 AJAX 验证预览 以了解更多详细信息。

5. 对您的 JavaScript 表单验证进行广泛的测试

这在 上面 已有所阐述。

6. 将输入数据重写为有效格式

这是一个有趣的地方。基本上,其思路是接受“20070515”作为有效的日期,将其转换为“2007-05-15”进行验证。我没有看到任何对这种功能的具体请求,因此,如果有任何人对此感兴趣,请告诉我。与此同时,使用 masked input 插件 来帮助用户输入正确的格式可能是一个好主意。

7. 在设计过程的后期附加 JavaScript 表单验证

这是一个非常好的建议。由于 jQuery 的非侵入性,它在这方面提供了很大的帮助。在没有任何 JavaScript 的情况下设计您的表单,然后稍后添加它,尽可能地改善用户体验 (UX)。

8. 使脚本与 i18n 和 l10n 兼容

换句话说:避免硬编码字符串,而是尽可能容易地将它们替换为当前区域设置。

验证插件允许您通过覆盖所有默认消息来翻译所有默认消息。很容易在插件文件之后包含一个文件,该文件包含以下内容

$.extend($.validator.messages, {
  required: "Eingabe nötig",
  email: "Bitte eine gültige E-Mail-Adresse eingeben",
  ...
});

这种方法效果很好。您可以在同一个文件中收集其他翻译,例如 datepicker 的标签。

包含适合用户区域设置的正确翻译文件只是一个服务器端问题。

其他问题,例如不同的数字或日期格式,可以通过编写自定义方法或覆盖默认方法来解决(在 $.validator.methods 中)。默认情况下提供德语日期和数字格式的方法:date(默认 JavaScript Date 格式)、dateISO(1990-01-01 或 1990/01/01)、dateDE(01.01.1990 或 2.12.2012)以及 number(100,000.59)和 numberDE(100.000,59)可用。不过,目前这些方法都没有验证任何范围,例如 0001-13-50 也是有效的 ISO 日期。

9. 向验证框架添加回调函数

验证插件提供的最重要的回调函数是 submitHandler。当提交有效表单时,它会被调用,允许您例如通过 AJAX 提交表单。还有其他回调函数可用,例如 errorPlacement,用于自定义错误消息插入 DOM 的位置,例如用于表格布局。

在 1.2 中,添加了对无效表单的回调函数,每当用户提交无效表单时,它都会被调用。到目前为止,showErrors 回调函数可以用于此目的,但它也会在每次验证单个元素时被调用。因此,新的回调函数可以用于更新类似“表单中存在 6 个问题”这样的消息。可以使用现有的 errorContainer 选项来显示和隐藏此类消息。

10. 使您的框架/库可扩展

使用您自己的内容扩展验证插件的最重要一点是 $.validator.addMethod。它允许您添加任何需要的验证方法。通过将您自己的自定义方法保留在您自己的文件中,您可以轻松地更新插件本身。

AJAX 验证的第一种方法很可能会演变为 $.validator.addRemoteMethod,它提供远程 AJAX 方法所需的所有样板代码,但允许您使用任何需要的协议。您使用 get 还是 post、向服务器发送单个值还是整个表单,以及服务器返回 true 或 false 还是错误消息以显示,无论您使用哪种格式,它都不重要。当然,实现该方法需要更多工作,但它提供了极大的灵活性。您对这方面的反馈至关重要,因为我避免随意猜测您可能需要什么。

我希望这能很好地说明表单验证的当前状态及其进展,并有助于您决定是否使用它。

jQuery 1.1.3:速度提升 800% 以上,依然保持 20KB

发布时间 作者

我很高兴地宣布 jQuery 1.1.3 版本发布。经过数月的测试、开发和更多测试,我们发布了一个非常稳定的版本供下载。它包含了大约 80 多个已修复的错误 和一些增强功能。主要亮点包括

  1. 速度得到提升,DOM 遍历速度比 1.1.2 快 800% 以上。
  2. 事件系统已重新编写,更优雅地处理键盘事件。
  3. 效果系统已重新编写(并附带了 fx 测试套件),执行速度更快,跨平台支持更好。

更新 - 7 月 4 日我们刚刚完成了一个快速错误修复版本,版本号为 1.1.3.1,它修复了 几个未解决的问题

下载

与往常一样,如果您发现此版本中存在任何错误,请将它们发布到 jQuery 错误跟踪器

1.1.3 功能

选择器速度大幅提升

由于大众需求,我们深入研究并对 jQuery 的选择器引擎进行了重大更改。以下是对 jQuery 本身速度提升的细分。所有数字均基于 SlickSpeed 测试套件。

浏览器 jQuery 1.1.2 jQuery 1.1.3 % 改进
IE 6 4890ms 661ms 740%
Firefox 2 5629ms 567ms 993%
Safari 2 3575ms 475ms 753%
Opera 9.1 3196ms 326ms 980%
平均改进 867%

此外,我们使用 SlickSpeed 测试套件,针对其他一些流行的选择器库测试了改进后的代码库。

浏览器 Prototype jQuery Mootools Ext Dojo
IE 6 1476ms 661ms 1238ms 672ms 738ms
Firefox 2 219ms 567ms 220ms 951ms 440ms
Safari 2 1568ms 475ms 909ms 417ms 527ms
Opera 9.1 220ms 326ms 217ms 296ms 220ms

查看 速度套件 结果时,需要注意以下几点

  • 我们比 jQuery 1.1.2 快 800% 以上。
  • 我们是速度最快的框架,运行在最流行的浏览器——Internet Explorer 6上。
  • 我们是唯一一个不会产生错误结果的框架。
  • 所有这些都不会给您带来任何成本——jQuery 仍然是您所期待和喜爱的 20KB。

新的选择器

Unicode 选择器: 对于那些想要使用 Unicode 属性值、ID、类名或标签名的用户来说,这是一个巨大的补充。您现在可以直接在 jQuery 选择器中使用它们。

$("div.台北")
$("div#台北")
$("foo_bar台北")
$("div[@id=台北]")

转义选择器: 您可以使用此功能(一个经常被请求的功能)通过 ID(或其他选择器)选择使用特殊字符的元素,例如,这将找到 ID 为“foo.bar”的 div。

$("div#foo\\\\.bar")

不等式选择器: 虽然此选择器不是 CSS 规范的一部分,但它经常被使用并包含在其他选择器库中,因此我们决定将其添加进来。

$("div[@id!=test]")

:nth-child() 改进: 此选择器允许您定位特定子元素。从 jQuery 的一开始,我们就支持 :nth-child(1) 和 :nth-child(odd) 等选择器,现在我们添加了高级 :nth-child 选择器,例如:

$("div:nth-child(2n)")
$("div:nth-child(2n+1)")
$("div:nth-child(n)")

空格分隔的属性: 在 jQuery 1.0 中被移除后,此选择器现在根据大众需求被重新引入。它允许您定位空格分隔的属性(例如类或 rel 属性)中的单个项目。

$("a[@rel~=test]")

动画改进

速度: 动画现在明显更快更流畅。此外,您可以运行更多同时动画,而不会造成任何速度损失。

测试: 我们现在拥有一个专门用于动画的测试套件——这使我们能够修复许多以前无法定位的紧急动画错误。

DOM 事件监听器

在内部,jQuery 事件系统已经过全面检修,以使用 DOM 事件系统,而不是传统的“onclick”样式的绑定事件处理程序。此改进使您在使用库时更加不显眼(不会影响周围其他库的流程)。此外,它还有助于解决与将事件监听器绑定到 IFrames 相关的一些未解决问题。

事件规范化

已经采取了一些措施来规范键盘和鼠标事件。您现在可以访问event.which 属性以获取有关按下特定键或按钮的大多数详细信息。

多个 .is()

.is() 方法现在可以接受多个选择器,用逗号分隔。这使您可以根据多个选择器测试您的 jQuery 集合。

$("div").is(":visible, :first")

浏览器版本

插件作者经常请求的功能是确定用户的浏览器版本。我们现在通过一个额外的属性公开此信息。

jQuery.browser.version

更多错误修复

请参阅票证列表以获取此版本中解决的所有问题的完整列表。

jQuery 的未来

我们一直非常关注 jQuery 项目的进展方向。我们现在正在关注许多不同的方面,但主要关注点仍然是核心 jQuery 库的进步。我们已经规划了接下来的两个版本,您可以在下面阅读更多内容。

jQuery 1.1.4

这将是 jQuery 1.1 分支的最后一个版本——另一个错误修复版本,包含一些小的改进。此版本还将根据即将发布的 jQuery 1.2 版本,将一些方法标记为已弃用。

我们目前计划在 7 月底发布此版本。

jQuery 1.2

这将是 jQuery 的下一个主要版本,包含大量新功能。此版本的完整详细信息可以在jQuery 1.2 路线图中找到。

我们非常感谢您对该版本的评论和反馈。它仍在计划中,因此还没有完全确定。我们目前计划在 8 月底发布 jQuery 1.2。

jQuery 图书

我们现在有4本正在撰写的 jQuery 图书,更重要的是,它们都是由 jQuery 团队成员撰写的(因此您知道您正在获得良好的信息)。

图书及其作者如下所示:

  • 学习 jQuery 由 Karl Swedberg 和 Jonathan Chaffer 撰写——预计 2007 年 7 月初出版(Packt 出版社)。
  • jQuery 参考指南 由 Karl Swedberg 和 Jonathan Chaffer 撰写——预计 2007 年夏季出版(Packt 出版社)。
  • jQuery 快速入门 由 Yehuda Katz 和 Bear Bibeault 撰写(Manning 出版社)。
  • 使用 jQuery 进行设计 由 Glen Lipka 撰写(Manning 出版社)。

这真是一个好消息。我已经读过一些预发布章节,我认为您会非常喜欢这些书籍。

jQuery 演讲和会议

我想宣布在接下来的几个月内将有一些关于 jQuery 的演讲。具体来说,将在两场Ajax 体验会议上进行一些关于 jQuery 的演讲。

在旧金山 Ajax 体验会议上,John Resig 将对 jQuery 进行入门介绍,然后进行高级 jQuery 演讲。Glen Lipka 将发表关于使用 jQuery 进行设计的演讲。

在波士顿 Ajax 体验会议上,John 和 Glen 将再次进行演讲,并将与 Paul Bakaus 共同进行关于使用 jQuery 开发高强度应用程序和游戏的演讲。

由于将在波士顿 Ajax 体验会议上有不少 jQuery 团队成员,我们想宣布我们计划在 Ajax 体验会议后的第二天举办一个小型的为期一天的jQuery 会议。这将是您与 jQuery 团队会面并提出任何萦绕心头的问题的绝佳机会。我们还将进行一些关于 jQuery 特定方面的演讲。我们很快会提供更多有关此会议的信息。

jQuery UI

今天,我们还很高兴宣布我们一直在秘密开发的一个项目:jQuery UI。这个项目由 Paul Bakaus 编写,是一个全新的拖放库,从头开始开发,并考虑了速度和可扩展性。此外,代码将得到充分的文档记录和测试,这将使许多其他开发人员能够使用和帮助扩展它。

这个库将包含可拖动、可放置、可排序、可调整大小和滑块的完整代码。

您可以在SVN 存储库中查看 Paul 的一些早期作品。

资金和感谢

新的 jQuery UI 库标志着 jQuery 项目的新阶段:这是一段代码,我们使用您——jQuery 用户捐赠的资金来赞助它的开发!

这是通过两种方式实现的:首先是您对 jQuery 项目的持续支持和捐赠,其次是Media Temple 的慷慨服务器捐赠。这使我们能够将财务资源集中在其他将使每个人受益最多的项目上。

因此,我想借此机会请求更多捐款,以帮助我们继续为激动人心的新作品提供资金,这些作品可以让您在您的网站上使用。任何帮助都将不胜感激。

金额(美元)

再次感谢 jQuery 团队以及所有帮助使该版本成为可能的人员。这已经付出了很多努力,但我希望您会像我们一样对该版本感到满意。感谢您——感谢您使用 jQuery!

Visual jQuery 杂志:第二部分

发布于

那些已经使用过一段时间的人都知道,去年 9 月,我发布了第一期Visual jQuery 杂志。10 月,该杂志还以法语出版。

该杂志对 jQuery 社区的重要成员(如创建者 John Resig、插件编辑 Dave Cardwell 等)进行了采访,还发表了关于 jQuery 功能和实现的文章,甚至还有一些关于替代 JavaScript 库的文章,并配有高质量的图形和原创艺术作品。

人们对它的积极评价令人难以置信,并且人们似乎真的很喜欢它。不幸的是,虽然我最初计划将该杂志做成月刊,但由于我的日程安排越来越繁忙,它最终被搁置了。自从第一期发布以来,我找到了一份新工作(当时是新工作;现在已经八九个月了),搬到了全国各地(从纽约到加州),并完成了我的第一本书的写作(敬请关注详情!)。显然,我一直很忙。

没有第二期一直在困扰着我,从第一期发布以来,我一直决定是时候让它发布了(我承认,这在很大程度上要归功于我的好朋友 Rey Bango 最近重新努力推动 jQuery 的发展)。幸运的是,该杂志的主设计师和法语开发人员/翻译团队都表示有兴趣帮助第二期发布,这使得这个目标更加切实可行。

第一期只是一个实验,结果非常成功。不过,由于是第一期,它非常像“Yehuda 的个人秀”。我希望第二期能够更加协作,让更多人参与进来;有很多 jQuery 主题需要探索,还有很多团队成员和用户都有令人着迷的故事要讲述。

因此,我正在发出消息。我正在为Visual jQuery 杂志的第二期征稿。文章的长度可以变化很大,从简短的三段文章到三页长的专题文章。它们可以是教程、专题文章、访谈等等,我相信你们都会想出很多其他的想法。只是一些简短(而且比较灵活)的指南

  • 文章必须以杂志或报纸的格式(如果您的投稿确实是文章——插图也会被考虑)。我对这一点非常宽容,但它应该是您可以在杂志上看到的内容。
  • 文章必须是关于 jQuery 社区及时且相关的主题,并且具有广泛的吸引力。
  • 文章不得是广告(但显然,如果它具有广泛的吸引力,则可以包含您编写的插件)。
  • 文章必须真实可靠。
  • 杂志编辑团队将编辑您的文章的语法、篇幅和风格。您将在出版前收到编辑后的副本以供审批。
  • 杂志编辑团队将根据需要添加图形和其他视觉元素。
  • 在花费大量时间撰写文章之前,请先发送投稿提案或简要描述;这样我们可以避免出现空间不足的情况,并确保所有值得印刷的内容都能够发表。请将投稿和读者来信发送到 editor AT visualjquery DOT com。

    正如我从这个项目的开始就说过的那样,我认为该杂志确实有潜力将 jQuery 世界向新用户开放,并希望通过推动社区制作内容的界限,我们能够让 jQuery 继续保持目前的积极发展势头。我个人对此感到非常兴奋。

    我也将接受广告,所有收益将捐赠给 jQuery 项目。如果您有兴趣,请给我发电子邮件!

    新的插件库

    发布时间: 作者:

    jQuery 的一大优势在于其可扩展性,这一点从为其开发的许多优秀插件中可见一斑。jQuery 团队,尤其是 Web 团队,一直在幕后努力,为 展示这些插件的仓库 添砖加瓦。

    jQuery Plugin Repository

    这个新的仓库包含了一些功能,肯定能帮助用户找到他们想要的东西,并确定哪些插件最适合他们的需求。这里有一个(基于 jQuery 的)评分小部件,可以让你了解其他人对每个插件的评价。所有人可见这些评分,你也可以通过在网站上用用户名和电子邮件地址注册来对插件进行评分。你还可以更方便地访问变更日志、演示和文档,以及错误报告和功能请求。

    还有一些细节需要完善,而且网站上的插件列表目前还比较少。我们请求插件作者在接下来的几周内将他们的作品发布到新的插件仓库,因为我们将逐步淘汰 插件维基页面

    特别感谢 Mike Hostetler 为仓库的顺利启动付出了大量时间。

    访问地址:https://jqueryjs.cn/plugins/

    jQuery 巴黎聚会

    发布时间: 作者:

    注意活动地点已变更!我们现在将在 Best Western Bergère Opéra 酒店举行,请调整你的计划。

    时间
    2007年6月24日,星期日 – 上午10:30

    地点
    Best Western Bergère Opéra 酒店
    32, Rue Bergère
    巴黎,法兰西岛大区 75009
    (Google 地图路线)

    关于
    这是一个为使用并对 jQuery JavaScript 库感兴趣的人举办的聚会。我们将在 Best Western Bergère Opéra 酒店的大堂集合,然后到公园里野餐。

    John Resig,jQuery 的创建者和首席开发人员,将出席此次活动。

    此次聚会由 SPIP(一个流行的 CMS,正在使用 jQuery)核心团队组织。

    注册
    如果您有兴趣参加此次活动,请在 Upcoming.org 活动页面上报名。
    http://upcoming.yahoo.com/event/206745

    新的命令行 jQuery 工具

    发布时间: 作者:

    更新:我已经完全重构了 jcheat,并添加了大量新功能,包括大量可组合使用的过滤器。运行 gem update,并运行 jcheat -h 查看完整的使用说明。

    我发布了一个新工具,jquery-cheat,它允许你直接从命令行获取有关 jQuery API 的信息。你可以获取函数的描述、每个模块中的函数列表、在所有函数描述列表中搜索字符串、获取所有名称匹配字符串的函数列表,以及其他一些很酷的功能。

    一些示例

    # jcheat desc clearForm
    --------------------------------------------------------------------------------
    Name:         clearForm()
    Description:  Clears the form data.
                  
    Details:      Clears the form data.  Takes the following actions on the
                  form's input fields:  - input text fields will have their
                  'value' property set to the empty string  - select elements
                  will have their 'selectedIndex' property set to -1  - checkbox
                  and radio inputs will have their 'checked' property set to
                  false  - inputs of type submit, button, reset, and hidden will
                  *not* be effected  - button elements will *not* be effected
                  
    Returns:      jQuery
    --------------------------------------------------------------------------------
    |                                   EXAMPLES                                   |
    --------------------------------------------------------------------------------
    ---------------
    | Description |
    ---------------
    Clears all forms on the page.
    
    --------
    | Code |
    --------
    $('form').clearForm();
    
    # jcheat namelike $.ajax
    $.ajaxTimeout(time) in Ajax
    $.ajaxSetup(settings) in Ajax
    $.ajax(properties) in Ajax
    
    # jcheat like clear field
    clearForm() in Plugins/Form
    clearFields() in Plugins/Form
    
    

    你可以通过以下方式获取该工具

    gem install jquery-cheat -y
    

    -y 参数用于自动包含 hpricot,这是一个必需的依赖项。