jQuery UI 1.8 新增了 position、button、autocomplete、新的 widget 工厂,以及更轻量级的核心

发布日期: 作者:

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

我们付出了巨大的努力,使 jQuery UI 更轻量级、更模块化,并拥有更灵活、更可扩展的核心。现在,无论您使用 jQuery UI Widget 工厂、jQuery UI CSS 框架还是两者兼而有之,构建自己的小部件或扩展我们的小部件都变得更加容易。这个版本是 9 个多月以来的集体努力,得到了数百位开发人员、设计师、测试人员和用户的贡献。感谢您的帮助和支持。在文章的最后,我们还会进行个人感谢(我们会点名!)。

代码、主题、演示和文档现在可以在 jqueryui.comjQuery UI 下载构建器ThemeRoller 以及 Google 的 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 工厂以及更模块化的核心。有关 jQuery UI 1.7.2 和 jQuery UI 1.8 之间所有更改的完整列表,请参阅 1.8 变更日志。请查看以下内容,了解一些较大和更明显的更改的摘要。

Position 实用程序

相对于任何其他元素,甚至相对于窗口或鼠标,定位任何元素。以真正的“少写,多做”的方式,只需选择要定位的元素,并说明其哪个部分应该相对于另一个元素的哪个部分进行定位即可。就是这样。

Button 小部件

Button 小部件可以从您可能用作原生按钮的任何可想而知的元素中创建可主题化的按钮。逐步增强,始终如一。现在您的 <button> 将与您的 <input type=”submit”> 以及您的 <a class=”button”> 具有相同的视觉效果。我们更新了包含按钮的 jQuery UI 小部件,例如 Dialog,以便在您选择包含它时使用 button 插件。否则,它们将保持原生按钮元素。再次感谢 PE,这尽可能地避免了入侵。感谢 Filament Group 想出如何实现这一点,并感谢 Jörn Zaefferer 使其成为现实。当然,还要感谢整个社区在早期设计/开发和后期开发/测试过程中提供的反馈。我们很高兴拥有漂亮的表单元素,而 button 只是第一步。

Autocomplete 小部件

现在您可以让任何文本输入弹出一个菜单,以帮助用户完成文本输入或搜索框,提供建议或允许的值。Autocomplete 是基于流行的 Jörn Zaefferer 的 Autocomplete 设计和构建的。与 button 小部件一样,我们尽可能地保持 API 最小化,同时提供必要的挂钩,以便根据您的需求对其进行定制。例如,您可以使用 source 选项提供静态本地数据,或者提供回调函数作为数据源,该函数可以通过 Ajax 从服务器获取数据。单个选项,重载。这是我们今后编写和重构所有小部件的新方法,我们很乐意听取人们的意见。这是一个很大的改变,但它应该保持库的精简性,同时仍然尽可能地灵活和强大。请查看 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 工厂的大量更新。这些更改使创建和扩展您自己的小部件、扩展我们的小部件或扩展其他人创建的小部件变得更加容易。

注意:其中一些是破坏性的更改,需要对基于 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 核心内部。这意味着,以前包含 jQuery UI 核心的但并不依赖于 mouse 插件的 jQuery UI 插件需要包含更少的未用代码,平均文件大小改进 14%。这仅仅是平均值。一些改进将高达 36%。

文件重命名

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

注意:如果您编写自己的 jQuery 插件,即使它是基于 jQuery UI Widget 工厂的,也请遵循 jQuery 插件命名指南“jquery.{plugin-name}.js”,而不是“jquery.ui.{plugin-name}.js”。这将使区分属于和不属于官方 jQuery UI 库的 jQuery 插件变得更加容易。相同规则适用于 widget 命名空间和 css 类命名空间,当然使用一般的 jQuery UI CSS 框架类除外。例如,如果您编写一个小部件,名为 foo,则该文件应命名为 jquery.foo.js,而不是 jquery.ui.foo.js。该小部件可以使用 ui-widget、ui-widget-content、ui-state-active 等类(请参阅 主题文档,了解完整列表),但不能使用 ui-foo 和其他 ui-foo-* 类名,因为这些类名将保留给 jQuery UI 库中的 foo 小部件,或者 jQuery UI Foo 小部件,其文件名将为 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 中的每一个部分都得到了多少改进,您可以查看 变更日志,了解所有详细信息。如果您最喜欢的错误尚未修复,请务必在我们的 错误追踪器 或新的 开发 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.8 添加了 position、button、autocomplete、新的小部件工厂,更轻的内核”的 54 个想法

  1. 我在哪里可以发布有关特定示例的一些问题?特别是,组合框示例缺少一些内容,并且有一些奇怪之处,我似乎无法解决。

  2. Pingback: jQuery UI 组合框:幕后 » 学习 jQuery - 提示、技巧、教程