经过两年半的延迟和大量的辛苦工作,终于发布了新的1.9版jQuery UI。 jQuery UI 1.9一直支持最新的jQuery稳定版本,直至版本1.6。 修复了许多错误并进行了许多更改,这对于库而言是重要的一步。
很高兴向您介绍最新的变化,但首先让我解释其中一些原因。 jQuery UI是从不同来源收集的新插件和现有插件的组合开始的。 不幸的是,该计划的缺点是每个作者都有自己的编码风格和设计原则,这导致插件和小部件之间的不一致,从而阻碍了图书馆的整体发展。 意识到这个问题,从版本1.8开始,jQuery UI团队试图通过关注更简化的API来更改构建插件的现有过程。
即将发布的2.0版本的主要目标是拥有一个经过完全重新设计的项目,该项目具有更加简单的API,统一的代码库,小部件之间的一致性,更好的稳定性,完整的文档以及针对每个插件的完整测试套件。 而且,一旦将现有插件更新为新标准,该项目将以更快的速度前进。 现在,让我们讨论1.9版中的更改。
您可能会注意到的第一件事是, jQuery UI网站已经完全重新设计,具有新的外观。 除了更广泛,更清洁的新设计之外,API文档现在还包含许多旧站点中缺少的信息。 该站点仍在开发中,因此希望将来能看到更多内容。
让我们欢迎新的工具提示,微调器和菜单小部件进入该库。 我不会在这里为您提供任何代码示例,因为jQuery UI网站上已经有很多演示。 只需点击以下链接,即可查看正在使用的小部件。
有了新的工具提示小部件 ,jQuery UI终于有了内置的工具提示解决方案。 该小部件允许您使用通过Ajax加载的静态内容或远程内容。 您可以添加自定义位置,并选择在显示和/或隐藏工具提示时要使用的动画。 同样,将“鼠标跟踪”选项设置为true ,工具提示将一直停留在鼠标指针上,直到它在元素上移动。
当您处理任何类型的数字输入时, 微调小部件可以是您最好的朋友。 可以使用鼠标的滚轮或键盘来操作值。 您可以按较小或较大的增量旋转值。 例如,向上/向下箭头键可将值旋转一,而页面向上/向下键可将值旋转十。 另外,通过使用Globalize插件,您可以配置小部件以使用不同语言环境中的货币和日期。 最后,溢出选项允许您将微调器限制在一定范围内。 例如,如果将范围设置为1到5,则高于5的任何内容都会溢出为零,反之亦然。 在处理日期和时间时,这尤其有用。
菜单小部件可用于内联和弹出菜单,或作为构建更复杂的菜单系统的基础。 例如,您可以创建具有自定义位置的嵌套菜单。 说到菜单,计划在1.10版本中再增加两个小部件Selectmenu和Menubar。 您可以查看路线图以获取详细信息。
如前所述,jQuery UI被重构以变得更加一致和紧凑。 因此,新版本中进行了许多API更改。 下面列出了一些最值得注意的更改。
1.9版本为小部件工厂增加了许多功能,尤其是与实例化和继承相关的功能。 小部件开发人员将发现许多新功能和改进。 有关更多详细信息,请参见Widget 。
jQuery UI 1.9引入了针对手风琴,自动完成,对话框,位置,选项卡和效果的API重新设计。 总体而言,小部件之间的一致性得到了改善。 每个单独的小部件也都有一些改进。 手风琴小部件提供了更好的动画支持,选项卡小部件提供了更好的Ajax支持,而position实用程序提供了更好的碰撞检测。
所有效果文件都已重命名以匹配jquery.ui.*.js命名模式。 例如, jquery.effects.*.js已重命名为jquery.ui.effect-*.js 。 同样, jquery.effects.core.js已重命名为jquery.ui.effect.js 。 如果您使用单个效果文件,则需要相应地更新文件参考。
请注意,在1.9版中仅重构了小部件,实用程序和效果。 所有交互都将针对2.0进行重写,因此它们将经历不同的实现过程。
尽管重新设计带来了一些变化,但1.9保持了与1.8 API的完全兼容性。 这意味着升级到1.9不会破坏任何现有页面。 这是通过在1.9 API之上重建1.8 API来实现的。 所有1.9版本的默认行为是同时使用1.8和1.9 API,如果发生冲突,请遵循1.8 API。
在版本1.9中已弃用了许多现有的API。 这些API将在1.10版中删除。 幸运的是,删除1.8 API后,您无需等待下一个版本来查找代码是否仍然可以工作。 您可以使用$.uiBackCompat标志来禁用所有不推荐使用的API,从而可以确定代码是否已准备好用于1.10。 以下示例禁用通过设置已弃用的API $.uiBackCompat给false 。
<script src="jquery.js"></script>
<script>$.uiBackCompat = false;</script>
<script src="jquery-ui.js"></script>
升级指南包含有关升级到1.9版的详细信息。 不要担心所有这些变化。 没有人期望重构现有代码,但是jQuery UI团队付出了很多努力来确保轻松完成过渡过程。