jQuery 1.3.2 发布

发布日期: 作者:

下载

jQuery 1.3.2
https://code.jqueryjs.cn/jquery-1.3.2.min.js 压缩版 (使用 Gzipping 压缩后 19kb)
https://code.jqueryjs.cn/jquery-1.3.2.js 普通版 (120kb)

更改

按文档顺序返回元素

这是对 jQuery 选择器引擎的更改,它将返回的结果重新排序为文档顺序,而不是传入选择器的顺序。此更改是为了符合 选择器 API 规范(jQuery 在内部使用,在支持它的浏览器中)。

示例结果

  // jQuery 1.3.1 (and older)
  $("h1, h2, h3")
  => [ h1, h1, h2, h2, h3, h3 ]

  // jQuery 1.3.2
  $("h1, h2, h3")
  => [ h1, h2, h3, h3, h1, h2 ]

我要感谢 Diego Perini 推动我们实施了这个功能。

.live() 现在可以阻止冒泡

现在可以在回调中调用 event.stopPropagation()return false,并让它停止 live 事件的冒泡。这意味着现在可以在彼此内部绑定 live 事件,并且内部处理程序可以阻止外部处理程序触发。

例如

  <ul>
    <li><b>Google</b></li>
    <li><b>Yahoo</b></li>
  </ul>
  <script>
    $("li").live("click", function(){
      $(this).addClass("active");
    });
    $("li b").live("click", function(){
      $(this).addClass("active");
      return false;
    });
  </script>

我要感谢 Iraê 为这个问题提出的解决方案。

对于那些想知道 .live() 目前缺少的功能(如 submit 和 change 事件),您可以期待它们在 jQuery 1.3.3 中发布,预计将在下个月某个时候发布。

:visible/:hidden 大修

我们已经改变了 :visible 和 :hidden 选择器背后的逻辑(这些选择器在整个 jQuery 中用于确定元素的可见性)。

以下是逻辑的改变方式
* 在 jQuery 1.3.1(和更早版本)中,如果元素的 CSS “display” 不是 “none”,其 CSS “visibility” 不是 “hidden”,并且其类型(如果是输入)不是 “hidden”,则该元素是可见的。
* 在 jQuery 1.3.2 中,如果元素的浏览器报告的 offsetWidth 或 offsetHeight 大于 0,则该元素是可见的。

此更改意味着什么?这意味着如果元素的 CSS display 是 “none”,或其任何父/祖先元素的 display 是 “none”,或者如果元素的宽度为 0 且元素的高度为 0,则元素将被报告为隐藏的。

进行此切换的好处是什么?结果是双重的
* 性能好得多,好得多。(见下文。)
* 如果元素位于“隐藏”元素内,则元素将被报告为“隐藏”(在不使用插件的情况下,这以前是不可能的)。

我要感谢 Matheus Almeida 提出了在这些选择器中实施的一些性能改进变更。

.height()/.width() 大修

与宽度和高度相关的选择器都经过了大修,大大提高了它们在所有浏览器中的速度。

我要感谢 Mike Helgeson 在这里做出的贡献,这些贡献在很大程度上是我们在这些方法中看到的巨大收益的原因。

IE 中的选择器加速

随着来自更大的 JavaScript 社区的贡献涌入,新的 Sizzle 选择器引擎的优势真正开始显现。已经实现了许多改进,这些改进有助于提高引擎的性能,尤其是在 Internet Explorer 中。

我要感谢 Fabio Buffoni 在这里做出的贡献,这些贡献在很大程度上是这些加速的原因。

.appendTo()/etc. 现在返回插入的元素

这是一个(小的)API 更改,它解决了 jQuery API 中的错误。appendTo、prependTo、insertBefore、insertAfter 和 replaceAll 方法现在都返回插入的元素集,而不是原始元素集。

要理解此更改,我们需要查看一个简单的示例。

在以下标记中,在 jQuery 1.3.1(和更早版本)中,将发生以下情况

  <div></div>
  <div></div>
  <script>
  $("<p/>")
    .appendTo("div")
    .addClass("test");
  </script>

1.3.1(和更早版本)中的结果

  <div><p class="test"></p></div>
  <div><p></p></div>

这是因为 .appendTo 等只会返回传入它的元素,而不是实际插入的元素(并且由于只传入了一个段落,即第一个要插入的段落,因此只有第一个段落添加了类)。

因此,如果在 jQuery 1.3.2 中运行相同的代码,您将得到

<div><p class=”test”></p></div>
<div><p class=”test”></p></div>

这是预期的结果。唯一的问题是,appendTo、prependTo、insertBefore、insertAfter 和 replaceAll 现在都将推送到 jQuery 堆栈(这意味着它们会受到 .end() 的影响)。

我们对上述方法的现有用途进行了调查,发现没有证据表明此更改会影响任何现有代码,因此我们认为可以安全地继续进行(特别是考虑到这是预期的行为,从一开始就如此)。

测试

关于我们的测试套件和 jQuery 项目中的测试方法,我们有一些公告。
* 我们现在完全支持 Internet Explorer 8rc1 和 Chrome 2(夜间版)(除了我们通常选择的浏览器外),并且测试套件在其中完全通过。
* 测试套件已打破 1500 个测试(确切地说是 1504 个)。

这意味着我们现在积极地在 11 个浏览器中进行测试,并在这些浏览器中通过测试套件:Chrome 1、Chrome 夜间版、IE 6、IE 7、IE 8rc1、Opera 9.6、Safari 3.2、WebKit 夜间版、Firefox 2、Firefox 3、Firefox 夜间版。

(我们正在等待 Opera 10 的下一个测试版,然后我们才能开始完全支持它,当前测试版存在一些严重问题。)

为了衡量 jQuery 不同部分的性能,我们使用 SlickSpeed 测试套件的修改版本来运行我们的测试(已适应处理非选择器测试)。测试运行的原始结果可以在下面找到(所有时间均以毫秒为单位)。

选择器测试

我们使用雅虎首页的副本(一个具有代表性的复杂网页),并使用人们实际使用的选择器集合。针对人们当前使用的选择器将有助于提高现有和未来应用程序的性能。

Frameworks	jQuery 1.2.6	jQuery 1.3	jQuery 1.3.2
IE 6		1059		799		626

:hidden/:visible 测试

我们在测试页面中的许多元素上测试了 :hidden 和 :visible 选择器。

Frameworks	jQuery 1.3	jQuery 1.3.2
Firefox 3	1512		190
Firefox 3.1	1202		161
Safari 3.2	592		80
Safari Nightly	334		43
Opera 9.6	1307		497
IE 6		1948		738
IE 7		1295		830
Chrome		490		30

宽度/高度测试

我们在测试页面中测试了 width、height、innerWidth、innerHeight、outerWidth 和 outerHeight 方法。

Frameworks	jQuery 1.3	jQuery 1.3.2
Firefox 3	310		106
Firefox 3.1	281		84
Safari 3.2	146		37
Safari Nightly	166		32
Opera 9.6	345		116
IE 6		313		124
IE 7		283		123
Chrome		113		27

您认为自己擅长 CSS 并且想要免费参加 SXSW?看看这个比赛吧。

发布日期: 作者:

jQuery UI 赞助商 Filament Group 正在举办一个很棒的比赛

“为了庆祝 ThemeRoller 入围 SXSW 网络奖的技术成就奖,我们正在举办一个比赛,向创作最酷的 jQuery UI CSS 框架使用方式的人赠送一张免费的 SXSW Interactive Festival 入场券。”

在这里查看比赛帖子:比赛:为最酷的 jQuery UI CSS 框架使用方式赢得一张免费的 SXSW Interactive Festival 入场券

引用 Filament

SXSW badge

我们对新的 jQuery UI CSS 框架 感到非常兴奋,因为它可以轻松地使用 jQuery UI ThemeRoller 网页应用程序对 UI 小部件甚至整个布局进行主题化。为了庆祝提名并鼓励每个人利用这个新框架,我们正在举办一个比赛,看看谁能够展示对该框架功能的最具创意的使用方式。获胜者将获得一张免费的 SXSW Interactive Festival 入场券,该活动将于 2009 年 3 月 13 日至 17 日在德克萨斯州奥斯汀举行。

如何开始

首先,从 jQuery UI ThemeRoller 下载主题和演示页面,并查看 jQuery UI CSS 框架文档 以了解该框架的使用方式。然后前往 jQuery UI 网站,获取方便的 Firefox ThemeRoller 书签小工具,以帮助您在构建项目时测试样式。如果您正在创建演示页面,我们强烈建议您包含 主题切换下拉菜单,以便人们可以快速在您的页面上查看 ThemeRoller 主题,并真正展示主题的实际效果。

请记住,CSS 框架不仅仅适用于 jQuery 插件,框架样式可以与任何 Javascript 库或您自己的自定义标记一起使用。我们很高兴看到您使用酷炫的 WordPress 模板、公司网站、小部件甚至游戏来展示该系统的强大功能和灵活性。随意使用多个作用域主题,尽情发挥吧。

如何参赛

我们会尽量保持简单:发布评论,简要描述您的项目并提供指向功能性示例的链接。获胜者将由 Filament Group 根据其项目的创造力、质量和独创性决定。

比赛规则

  • 每个人都有资格参加,没有例外。
  • 您可以提交任何使用 jQuery UI CSS 框架 的项目类型:公共网站、演示页面或任何其他展示您的创造力并可公开访问的项目(即不在登录后)。
  • 您可以提交尽可能多的唯一项目;每个项目都算作一个单独的参赛作品。(请勿重复发布相同的项目……这可能会对您不利)。
  • 参赛截止日期为 2009 年 2 月 25 日星期三午夜。
  • 比赛结果将于 2009 年 2 月 27 日星期五公布。
  • 获胜者将获得一张参加 SXSW Interactive Festival 的入场券,其中包括参加 3 月 15 日星期日举行的 SXSW 网络奖颁奖典礼的资格。我们会向您发送一个访问代码,您可以在此代码的帮助下免费注册。(注意:该入场券不包含参加电影节或音乐节的资格,也不包括交通、食宿或餐费,您需要自行支付这些费用。)
  • jQuery UI 和 Filament Group Inc. 保留链接到您的项目的权利(我们希望宣传您的辛勤工作)。

一点灵感

为了展示使用 jQuery UI CSS 框架能够实现的功能,这里有一个非常棒的插件示例,它很好地使用了该框架,从样式到图标。Nicolas Rudas 创建了一个非常酷炫的 Apple 风格的文件浏览器,其中还包含主题切换下拉菜单,以确保其效果更佳。他更进一步,创建了一个 jQuery API 浏览器,它使用了他的插件。确实非常酷。

(注意:在宣布这场比赛之前,Nicolas Rudas 未收到通知,所以 Nicolas,如果你想参加比赛,你仍然有资格获胜。这场比赛怎么样?)

image

在文档维基上有一个 使用 CSS 框架的插件列表,但目前列表还很短,我们希望这次比赛能真正激发人们自己尝试使用这个框架。

所以…行动起来吧,展示你的实力!

点击这里查看比赛详情:比赛:使用 jQuery UI CSS 框架最酷的方式赢取 SXSW Interactive 免费通行证

jQuery UI 1.7 是新的 1.6

发布时间: 作者:

jQuery UI 团队已经开发了 1.6 版本 9 个多月,在这个漫长的过程中,我们对每个插件进行了深度重构,并引入了新的 jQuery UI CSS 框架,在编写标记和样式方面发生了重大变化。与此同时,jQuery 核心库发布了新的 1.3 版本,其中包含许多我们希望利用的改进。

我们听到了你的声音

我们清楚地听到了大家对 1.6 开发周期中 (1.6rc2 之后) 发布候选版本之间这些重大更改所产生的困惑。根据 jQuery UI 社区的反馈,我们希望通过在未来几周内发布两个截然不同的版本来解决 jQuery 1.2.6 和 1.3 之间的兼容性问题。

1.6rc6 加上修复将成为 1.7 (与 jQuery 1.3+ 兼容)

我们目前称之为 jQuery UI 1.6rc6 的版本将作为 jQuery UI 1.7 发布。此代码从头开始构建,充分利用了 jQuery 1.3 和新的 jQuery UI CSS 框架,并且足够不同,以至于需要一个点版本来表示。经过大量分析,我们发现,在一个 UI 版本中同时兼容 1.2.6 和 1.3 在保持代码库可维护和精简的同时是不切实际的,因此此版本将不兼容 jQuery 1.2.6 或更早版本。

1.6rc2 加上修复将成为 1.6 (与 jQuery 1.2.6 兼容)

对于所有仍然积极使用 jQuery 1.2.6 的用户,我们想提供一个基于 1.6rc2 的 jQuery UI 库的遗留版本,它将尽可能多地从最近的代码更新中移植修复和改进,以提供一个清晰、稳定的基础,并与 jQuery 1.2.6 完全兼容。为了避免任何混淆,此版本将被称为 jQuery UI 1.6 final。由于这将是一个遗留版本,该团队将不会在它最终发布后对其进行积极开发。此外,此版本将不包含与新的 jQuery UI CSS 框架相关的任何更改。它将具有与 jQuery UI 1.5.3 相同的主题支持。

我们理解这是一个相当大的变化,欢迎社区提出意见,帮助我们尽可能顺利地完成升级。完整的升级指南将很快发布,以帮助您逐步升级插件,从而简化过渡过程。

当前发布状态

我们收到了很多关于最新发布候选版本 1.6rc6 的测试帮助,并且正在修复最后几个问题,以便尽快发布。在我们的 Dev 和 Planning Wiki ( http://wiki.jqueryui.com/ ) 首页上始终可以找到发布的最新摘要状态。我们对这个新版本的 jQuery UI 的质量感到非常兴奋,因为它将作为一个坚实的基础,为我们提供一个稳定的 API,并让我们能够在全年发布更多包含更新和新小部件的版本。

每周发布即将到来

从三月份开始,我们将切换到每周发布模式。每周我们将交替发布稳定的错误修复版本 (1.7.1、1.7.2 等) 和包含新插件和功能的预览版本 (alpha、beta、rc)。因此,每个分支最多每两周接收一次更新。如果我们在这两个版本之间需要额外的发布,或者我们需要添加额外的 beta 或 rc 版本,我们将在每周的基础上进行处理,并相应地调整路线图。我们的目标是实现 6-8 周的发布周期 (2-3 周 alpha,2-3 周 beta,1-2 周 rc,然后是最终版本)。

下载构建器更新

我们已经对下载构建器进行了全面更新。它现在与 ThemeRoller 完全集成,以便您可以下载一个自定义的 jQuery UI 库压缩包,其中包含预建主题或自定义主题。我们还修复了一些问题,这些问题与在 IE 中下载无效的压缩包以及 1.5.3 的最小化文件有关。

感谢您的帮助和支持

我们要感谢社区的支持,并鼓励您参与帮助我们开发世界上最好的 UI 库。如果您是希望帮助我们修复错误的开发人员,请随时在 ui-development 邮件组 ( http://groups.google.com/group/jquery-ui-dev ) 上发帖,并询问如何提供帮助。