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”,并且其类型(如果它是 input)不是 “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()/等现在返回插入的元素

这是一个(小的)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 (Nightly) 中完全通过(除了我们正常的浏览器选择之外)。
* 测试套件已经破坏了 1500 个测试(确切地说,是 1504 个)。

这意味着我们现在主动测试并使测试套件在 11 个浏览器中通过:Chrome 1、Chrome Nightly、IE 6、IE 7、IE 8rc1、Opera 9.6、Safari 3.2、WebKit Nightly、Firefox 2、Firefox 3、Firefox Nightly。

(我们正在等待 Opera 10 的下一个 beta 版本,然后再完全支持它,当前 beta 版本存在一些关键问题。)

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

选择器测试

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

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 测试

我们测试了在测试页面上 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 Web Award 技术成就奖的决赛入围者,我们正在举办一场竞赛,向创建使用新的 jQuery UI CSS 框架的最酷的人赠送一张免费的SXSW Interactive Festival门票。”

请查看竞赛帖子:竞赛:赢得免费的 SXSW Interactive Festival 门票,用于 jQuery UI CSS 框架的最佳创意应用

引用 Filament

SXSW badge

我们对新的jQuery UI CSS 框架感到非常兴奋,因为它使得主题化 UI 部件甚至整个布局变得容易,并使用jQuery UI ThemeRoller 网页应用程序。为了庆祝入围并鼓励大家充分利用这个新框架,我们正在举办一场竞赛,看看谁能展示该框架功能的最佳创意。获奖者将获得一张免费的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 的单人通行证,其中包括参加 2009 年 3 月 15 日星期日 SXSW Web Awards 颁奖典礼的资格。我们将向您发送一个访问代码,让您可以免费注册。(注意:该通行证不包括电影或音乐节的入场,也不包括交通、住宿或餐食——您需要自行承担这些费用)。
  • jQuery UI 和 Filament Group Inc. 保留链接到您的项目的权利(我们希望宣传您的辛勤工作)。

一些灵感

为了展示使用 jQuery UI CSS 框架的可能性,这里有一个非常棒的插件示例,它很好地使用了框架的样式和图标。Nicolas Rudas 创建了一个很酷的Apple 风格的文件浏览器,它还包括主题切换器下拉菜单。他更进一步,创建了一个jQuery API 浏览器,该浏览器使用他的插件。非常酷!

(注意:Nicolas Rudas 在宣布此竞赛之前没有得到通知,所以 Nicolas,如果您想参赛,您仍然有资格获胜。这算什么竞争?)

image

文档 wiki 上有一个使用 CSS 框架的插件列表,但目前还很短,我们希望这次竞赛能真正激发人们尝试该框架的热情。

所以……开始吧,向我们展示您所拥有的!

请查看此竞赛:竞赛:赢得免费的 SXSW Interactive Festival 门票,用于 jQuery UI CSS 框架的最佳创意应用

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,然后是 final)。

下载构建器更新

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

感谢您的帮助和支持

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