jQuery UI 1.8 添加了 position、button、autocomplete、新的 widget 工厂和更轻量的核心

发布于

jQuery UI 团队很高兴地宣布 jQuery UI 1.8 的最终版本,其中包含 5 个新插件、1 个新效果,以及数百个错误修复和改进。

我们已经非常努力地使 jQuery UI 更轻量级和更模块化,并拥有更灵活、更可扩展的核心。现在,无论您使用 jQuery UI Widget Factory、jQuery UI CSS 框架还是两者,构建自己的 Widget 或扩展我们的 Widget 都更加容易。此版本是跨越 9 个多月的集体努力,得到了数百位开发人员、设计师、测试人员和用户的贡献。感谢您提供的所有帮助和支持。在本文的最后,我们甚至会公开感谢(我们会点名道姓!)。

代码、主题、演示和文档现已在 jqueryui.comjQuery UI 下载构建器ThemeRollerGoogle 的 AJAX 库 API 上上线。

注意:此版本中存在重大(在某些情况下是破坏性的)更改。如果您当前使用或开发 jQuery UI 插件,请务必查阅 变更日志升级指南,以详细了解这些更改及其影响。

下载 jQuery UI 1.8

我想要全部

  • jQuery UI 1.8 初学者包 包含所有组件和我们的默认主题。它针对我们的 入门指南 进行了优化,以备您是新手的情况。
  • jQuery UI 1.8 开发包 包含所有组件和我们的基础主题。它针对 jQuery UI 本身的开发或重新分发进行了优化,而不是入门。
  • jQuery UI 1.8 主题包 包含 21 个 ThemeRoller 画廊主题。如果您喜欢其中一个主题但想要调整它,每个主题都可以用作主题自定义的起点。

我只想要我需要的

  • jQuery UI 1.8 下载构建器 会创建一个仅包含您选择的组件的自定义压缩包。它还会处理插件依赖项,因此您可以更轻松地进行操作。

我想要永远拥有

jQuery UI 1.8 中有哪些新功能?

此版本添加了两个新的实用程序、两个新的 Widget、一个升级的 Widget 工厂和更模块化的核心。有关 jQuery UI 1.7.2 和 jQuery UI 1.8 之间所有更改的完整列表,请参阅 1.8 变更日志。请参阅下方,了解一些较大且更明显更改的摘要。

Position 实用程序

将任何元素相对于任何其他元素定位,甚至相对于窗口或鼠标定位。以真正的“少写,多做”的方式,它与选择您想要的元素并说明其哪个部分应相对于另一个元素的哪个部分定位一样简单。就这么简单。

Button Widget

Button Widget 可以从您可能用作原生按钮的任何元素创建可主题化的按钮。始终进行渐进式增强。现在,您的 <button> 将看起来像您的 <input type=”submit”> 将看起来像您的 <a class=”button”>。我们更新了具有按钮的 jQuery UI Widget,例如 Dialog,以便在您选择包含它时使用 button 插件。否则,它们将保持为原生按钮元素。再次感谢 PE,这尽可能地不显眼。感谢 Filament Group 找到如何做到这一点的方法,并感谢 Jörn Zaefferer 让它成为现实。当然还要感谢整个社区在早期设计/开发和后期开发/测试期间提供反馈。我们很高兴拥有漂亮的表单元素,而 button 是第一步。

Autocomplete Widget

现在,您可以使任何文本输入弹出菜单,以帮助用户完成文本输入或搜索框,提供建议或允许的值。Autocomplete 是根据受欢迎的 Jörn Zaefferer 的 Autocomplete 设计和构建的。与 button Widget 一样,我们已尽可能地将 API 保持在最小限度,同时提供了根据您的需要自定义它的钩子。例如,您可以使用 source 选项提供静态本地数据,或提供一个回调函数作为数据源,该函数可以处理通过 Ajax 从服务器获取数据。单一选项,重载。这是我们今后将编写和重构所有 Widget 的新方式,我们很高兴听到人们的意见。这是一个很大的变化,但应该使库保持精简,同时仍然尽可能灵活和强大。请参阅 Autocomplete 演示,了解更多信息。

这是另一个新插件,其实现工作很大程度上要归功于 Jörn Zaefferer,API 设计由 Jörn Zaefferer、Scott González 和 Richard D. Worth 完成。Filament Group 始终如一地提供交互式设计以及静态标记和 css 引用。

新的 Widget 工厂

Scott González 和 Jörn Zaefferer 在社区的帮助下,在此版本中完成了对 jQuery UI Widget Factory 的重大更新。这些更改使创建和扩展您自己的 Widget、扩展我们的 Widget 或扩展其他人创建的 Widget 变得更加容易。

注意:其中一些是破坏性更改,需要升级基于 1.7 Widget 工厂构建的插件。有关这些更改及其影响的摘要,请参阅 升级指南中关于 Widget 工厂的部分

有关这些更改以及我们为何如此兴奋的另一个摘要,请参阅 David Petersen 发布的 这篇文章。感谢 David。

jQuery UI 核心缩小了 71%

最新版本的 jQuery UI 核心缩小了 71%。这种优化主要是通过提取已经模块化但捆绑在一起的组件 mouse 和 widget 来实现的。

新的 mouse 插件文件使 jQuery UI 平均缩小了 14%

mouse 插件并不新鲜,但此版本将它移到了自己的文件中,即 jquery.ui.mouse.js,而以前它是在 jQuery UI 核心内部。这意味着那些不依赖 mouse 插件但以前包含了 jQuery UI 核心的 jQuery UI 插件,现在包含的未用代码更少,平均文件大小改进为 14%。这只是一个平均值。一些改进将高达 36%。

文件重命名

所有 .js 和 .css 文件都已重命名,以 jquery.ui. 作为前缀,而不是 ui. 作为前缀。这样做是为了与 jQuery 插件命名准则保持一致,并为开发中的某些工具做好准备,这些工具将允许轻松创建包含 jQuery 插件和 jQuery UI 插件的自定义构建。

注意:如果您编写自己的 jQuery 插件,即使它是基于 jQuery UI Widget Factory,也请遵循 jQuery 插件命名准则“jquery.{plugin-name}.js”,而不是“jquery.ui.{plugin-name}.js”。这样可以更轻松地区分属于和不属于官方 jQuery UI 库的 jQuery 插件。对于 Widget 命名空间和 css 类命名空间也是如此,当然使用通用 jQuery UI CSS 框架类除外。例如,如果您编写一个名为 foo 的 Widget,则该文件应命名为 jquery.foo.js,而不是 jquery.ui.foo.js。Widget 可以使用诸如 ui-widget、ui-widget-content、ui-state-active 之类的类(请参阅 主题文档,了解完整列表),但不应使用诸如 ui-foo 和其他 ui-foo-* 类名之类的 css 类,因为这些类将保留用于 jQuery UI 库中的 foo Widget 或 jQuery UI Foo Widget,其文件名将为 jquery.ui.foo.js。

最新版 jQuery 1.4.2

jQuery UI 1.8 包含最新版本的 jQuery,即 1.4.2。它速度很快。

如何升级?

  1. 下载 jQuery UI 1.8(请参阅上面的链接)
  2. 如果您要从 1.7 升级到 1.8,请务必遵循最新的 升级指南。如果您是从更早的版本升级而来,则需要先遵循旧的 1.7 升级指南
  3. 最后,要了解 jQuery UI 在 1.8 中的每一个组件到底改进了多少,您可以查看 变更日志,其中包含各种细节。如果您最喜欢的错误尚未修复,请务必在我们的 错误跟踪器 或新的 Developing jQuery UI 论坛 中告诉我们。

jQuery UI 1.7 怎么办?

jQuery UI 1.8 正式版的发布使其成为 jQuery UI 的最新稳定版本。这使得之前的版本 1.7.2 成为旧版本。jQuery UI 项目同时支持最新的稳定版本和一个旧版本。因此,从现在开始,jQuery UI 下载构建器和 ThemeRoller 只包含这些版本。任何早于 1.7.2 的版本都不再受支持,建议所有用户尽快升级到 1.8。

在尝试将旧版 jQuery UI 1.7.2 与最新的 jQuery 1.4.2 一起使用时,发现了一些问题。这些版本不兼容。旧版 jQuery UI 1.7.2 仅与 jQuery 1.3.2 兼容。即将发布的 jQuery UI 1.7.3 版本将使它与最新的 jQuery 1.4.2 兼容。这将是最后一个 1.7.x 版本,冻结此分支。

感谢

感谢所有帮助发布此版本的人,特别是:3li、4pcbr、abaumhau、aesnn、aflynt、ajpiano、akaihola、akshell、alab1001101、albertvo、alexch、allanm051、andreas、Andrew Powell、andrew.sharpe.7.9、Aneon、antonello.pasella、aron.duby、arunpjohny、ashish879、ask、attaboy、audreyt、AzaToth、babaker、BenBlank、bhornseth、bkrausz、bman654、BMCouto、bmherold、bobbykjack、bobmajdakjr、bohdan.ganicky、bornemix、Brant Burnett、brostbeef、burhan、Ca-Phun Ung、caesar2k、carltongibson、cfrerebeau、chaos、Chealer、Chi Cheng、chrisbarr、cjwilks、coeamyd、colinclark、conkey2、crankharder、crexland、cupdike、cyberdaz360、d.wachss、d3r1v3d、dantman、danw、darkprisma、david.brooks、davidascher、davidb、defenestrator、Demphest、dhlavaty、diogobaeder、DiRN、divide、dluk、dmethvin、dmfontz、dmuir、dohsun、doublerebel、dougneiner、doutu、dpeterman、dprunier、DRHansen、dtetto、duelli、dunghopper、ecaron、eib、epascarello、epiraux、erikharrison、ethan、FDisk、FelipeMorais、fgTodd、Flany、FreakCERS、geki007、george.adamson、glipman、gotmikhail、grabanski、graemeworthy、GreyCells、guile、haayman、hatapitk、idlesign、igor.morozov、Infarinato、itfische、ivanko、jabbott7、JBeckton、jdillmann、jeffgran、jollytoad、julian.jelfs、Jörn Zaefferer、kae、ke4roh、Keith Wood、kevin.wells、klarkin、Klaus Hart、kswedberg、lisaj、lnostdal、lunchtimemama、L_K_W、m4olivei、macarthy、Maggie Costello Wachs、marcoos、margustiru、martinkeimel、Matty、mawcs、mconway、mdiaz、menteb、mesoconcepts、mg、MikaJ、mikecapp、mikehostetler、Miroku_87、mkemmerling、mkornblum、moveax、MugeSo、mulhoon、mvermilion、neilski、nikolae、NJBR、nodster、ntoniazzi、obrie、patrick、Paul Bakaus、quasipickle、qwerty、ramaboo、raszi、rbracket、remi、rgluga、ricardolopezrey、Richard Worth、riegens、rnbguru、RobARichard、rsyring、Rwhitbeck、sam、Sancus、sc0rchin、SCCY、Scott González、Scott Jehl、sdavis、sebbacon、Sebmaster、seph429、sgorski、shartley、sherington、shuckster、slobo、smadep、snobo、sonu27、sosensible、spiralni、stakach、StevenBlack、TaeVjQuery、tan、Tgr、th3br41n、theojapa、thetoolman、tibi7000、timolastfm、togis、tomas、triblondon、trixta、uggedal、urkle、veronica、viraj.kanwade、vmx、vrn_shan、wakamolee、wewals、whydream、wichert、wimvl、Wolfjourn、xorax、xover、yourcelf、ZaDarkSide、ZeroMD、zeta、Zidane

jQuery UI 1.8rc3

发布日期 作者

jQuery UI 1.8 的第三个候选版本现已发布,并已在 jqueryui.com 上线。您可以从此处下载:

下载

文件下载

Svn

变更日志

查看 1.8rc3 变更日志,了解自 1.8rc2 以来已修复的内容。有关自 1.7.2 以来修复的所有问题的列表,请查看 之前的 1.8 变更日志

升级指南

一份完整的 升级指南 正在筹备中,以帮助您轻松地从 1.7 迁移到 1.8。该指南将在最终版本发布时发布。同时,1.8 中已记录的一个重要(也是一个会造成冲突)的更改是对小部件工厂进行了重构。这意味着任何构建了自己的使用小部件工厂的插件的人都需要进行一些更改,以使其与 1.8 兼容。有关这些更改的概述,请查看 升级指南中小部件工厂部分。此外,请查看 Scott González 编写的 简单小部件的示例实现,其中包含 1.7 和 1.8 小部件工厂,以及它们之间的差异。

1.8 最终版的计划

我们希望在几天后发布 jQuery UI 1.8 最终版,前提是该候选版本中没有阻碍发布的问题。

感谢

感谢所有为此次发布贡献了错误修复和其他改进的人。我们将在最终版本发布公告中提供所有贡献者的完整列表。

如何报告问题

如果您在此版本中发现任何问题,请不要在本文评论中提出,而是前往 jQuery UI 开发论坛。谢谢。