jQuery UI 1.5.1

发布于 作者

在 jQuery UI 1.5 发布后不久,我们就收到了许多有用的反馈和问题提交到我们的错误跟踪器。今天,我们很高兴发布 jQuery UI 的另一个版本,它修复了许多小的回归问题和大量未解决的问题。

1.5.1 没有添加任何新功能或 API 更改,但修复了 50 多个发现的问题。如果您想了解具体内容,可以查看 完整的变更日志。强烈建议更新到此版本,并且不太可能破坏您编写的代码。

此外,ThemeRoller 和我们主页上的演示中也报告并修复了问题。我们现在正在继续完成所有单元测试和功能演示,因此预计 UI 及其网站的另一个版本很快就会发布。

您可以通过下载器或在 http://ui.jquery.com/download 获取最新版本,或者如果您喜欢,可以从 Subversion 获取最新标签。

下次再见,

Paul Bakaus 及 jQuery UI 团队

jQuery Camp 2008 宣布

发布于 作者

jQuery 团队很高兴地宣布第二届 jQuery Camp!jQuery Camp 2008 将于 9 月 28 日星期日,在马萨诸塞州波士顿(地点待定)举行,紧接在 The Ajax Experience 之后。

去年,有 100 多名 jQuery 开发者聚集在一起参加为期一天的 jQuery 会议,其中包括 jQuery 创建者 John Resig 和其他核心团队成员的演讲,以及专家用户探索新的和令人兴奋的 jQuery 项目的演讲。它汇集了有史以来最大规模的 jQuery 核心团队成员,并让用户有机会向他们咨询问题并提出新想法。

该活动是 *一次明确的*成功,今年的活动有望更加出色。

jQuery Camp 2008 将提供两个轨道,提供入门和高级课程,涵盖各种主题。Ajax 开发、mashup、安全以及最近发布的 jQuery UI 组件和效果库只是已经列出的一些主题。

jQuery Camp 2008 的费用为每人 50 美元,包括午餐。参加者无需注册 The Ajax Experience 即可参加。注册将于 7 月开放;请关注 jQuery.com 以获取更多详细信息!

对于那些参加 The Ajax Experience 的人来说,组织者最近宣布为额外的 jQuery 会议预留了半天时间,时间为 9 月 29 日在会议中心。议程尚未确定,但我们正在考虑提供“梦想团队代码审查”环节,让用户可以由 jQuery 团队成员审查代码。我们对您的反馈感兴趣;您会参加这个环节吗?

jQuery Camp 2008 是一个学习 jQuery 团队知识和与顶级 jQuery 开发者交流的绝佳机会;我们期待与大家见面!

九月见。

jQuery UI v1.5 发布,专注于一致的 API 和效果

发布于 作者
我们最近发现下载构建器存在一个问题,导致它提供缓存的 1.5rc1 文件而不是最终包。我们为由此造成的任何不便深表歉意,并强烈建议如果您将其下载为配置包,请再次下载 jQuery UI 1.5。

此外,ThemeRoller 中发现了一个问题,导致下载的图像在大多数情况下都是默认图像。该问题现已修复,我们也建议您再次尝试下载您的主题。

jQuery UI 1.5:重新思考我们对 UI 的方法

ws_Path_of_Light_1024x768.jpg

当我们第一次开始 UI 项目时,我们的目标是构建一种通用的、基本的、简单的将核心交互添加到 DOM 元素并扩展 DOM 元素的方法。然而,我们很快发现我们的方法不适用于 UI。使用“简单”的方法,我们只能提供简单的交互模块,而不能提供功能齐全的 UI 组件。第二个问题是,一些插件来自外部来源,这使得 UI 套件显得不连贯和不一致。

所有这些都发生在 1.0 发布之后,我们立即意识到是时候重新考虑我们的道路了。我们必须找到一种既保持 jQuery 的简单性 又能够将功能齐全的组件添加到 UI 的方法。我们还已经知道,易于使用的东西开发起来非常具有挑战性。第一项任务是构建一个通用的 API,该 API 允许实现 最大的灵活性,同时又 非常简单。下一个任务是使为该 API 开发插件同样简单。

一个 API 统治它们

我们想到的,是一个 删除了 95% 的公开方法,并保留了 每个插件只有一个重载方法 的 API。例如

  • $(“div”).draggable() 创建一个可拖动元素
  • $(“div”).draggable(“destroy”) 销毁它
  • $(“div”).draggable(“method”) 在插件上调用另一个方法。

新的 API 还使所有回调的行为相似,公开每个插件的默认选项,并使用 remove() 智能地清理插件。我们还使其能够动态更新插件选项,并添加了较小的更新,使 UI 感觉像一个套件。

为了实现这一点,我们 删除了 jquery.dimensions.js(现在可以在 jQuery 核心中找到),ui.mouse.js 和 *.ext.js 依赖项引入了 ui.core.js(其中包含许多有用的辅助函数),并创建了 jQuery UI 组件工厂,它使为 UI 创建新插件变得非常简单,同时又很难破坏 API。

稳定性、调试、测试和 jquery.simulate

jQuery UI v1.5 不仅功能丰富而且稳定,这一点至关重要。我们采取了几个步骤来大大改进我们的调试和测试,包括设置我们自己的 专用错误跟踪器,并针对 jQuery UI 指定版本和里程碑。我们还投入了大量时间来 新的单元测试存档),这些测试利用 jQuery 测试套件 QUnit。最后,我们创建了 jquery.simulate.js,一个专门设计用于 触发真实的浏览器事件 的插件。这意味着,您可以实际告诉插件拾取您的可拖动元素,将其移动到某个位置并释放它,就像您正在与真正的测试人员交谈一样。

效果的需求:Enchant 登场

能够退一步思考的好处之一是,它提供了对完整 UI 解决方案应该提供的内容的完全不同的视角。虽然 jQuery UI v1.0 当前提供了一套不错的 UI 控制,但用户需要像 script.aculo.us 和 jQuery UI 以前的灵感来源 Interface 这样的库所提供的那种可靠的效果。不幸的是,Interface 已经不再更新,这在效果方面留下了一些空白;因此,一个名为“Enchant”的新项目诞生了。最初计划作为 jQuery 和 jQuery UI 的补充库发布,我们意识到将 Enchant 与 jQuery UI 合并更有意义,从而让用户可以从一个解决方案轻松访问高级效果和 UI 控制。

我们自豪地宣布 Enchant 现在是 jQuery UI 的一部分,jQuery 用户现在拥有一个统一的解决方案来满足他们的效果和 UI 需求。jQuery UI 效果可以 独立使用 或与 UI 一起使用,并且具有一个单独的核心,该核心扩展了 jQuery 核心以引入 高级缓动、类转换(变形)颜色动画。所有效果都紧密集成到主 API 中,可以作为独立效果使用($(..).effect() ),也可以直接从您已经知道的 jQuery 方法中使用(hide()/show())。

总的来说,我们已经为您的项目准备了 15 多个现成的效果,不仅包括 script.aculo.us 提供的效果blind,bounce,drop,fold,slide …),还包括全新的效果(transfer, explode. clip, scale),使 jQuery UI 成为增强您应用程序的绝佳库!

正如在其中一篇博文中所承诺的那样,它带有 完整的文档组合演示 页面,让您可以在实际操作中看到它们。
themeRoller_ui_full.png

自定义主题:ThemeRoller!

用户在使用新的 UI 控制时通常想做的事情之一是“定制”它们以匹配网站的配色方案。显然,当您拥有来自不同来源的 UI 控制时,提供跨所有控制的一致“主题”的能力会变得更加困难,因为大多数组件作者都有自己定制控制的方法。我们认真地研究了这个问题,并优先考虑拥有一个一致的默认主题,用户可以将该主题用作自定义 jQuery UI 组件的模板。
我们联系了位于波士顿的 Filament Group,寻求他们的帮助,他们非常乐意提供帮助。由于他们非常投入 jQuery,他们认为这是一个进一步帮助该项目的绝佳机会。好吧,从概述单个默认主题的讨论开始,很快就发展成为 jQuery UI 的杀手级应用;ThemeRoller

ThemeRoller 提供了一种 独特的方法来主题化 UI 组件,该方法专门为 jQuery UI 构建。使用 ThemeRoller,您可以在几分钟内 为您的项目创建自己的主题。它完全直观,具有丰富的控件来 更改每个状态的颜色和设计,然后 在您工作时使用实际的 UI 组件预览您的主题!

您现在拥有 数百万种组合 可供选择。您可以随时复制 URL 来访问您创建的任何主题;并且在您玩得足够多之后,您可以单击下载按钮,并生成一个 包含 css 文件、图像和演示页面的 ZIP 包

此外,ThemeRoller 还包含一个主题库,用于浏览下载和获取灵感。为您的应用程序创建主题变得如此简单;它就是如此令人惊叹。
我们真的想向才华横溢的 Filament Group 的人们表达我们最深切的感谢,感谢他们创建了这个令人惊叹的应用程序。

哦,顺便说一句,您也可以通过直接 URL 在以下网址访问 ThemeRoller:ThemeRoller.org。如果您想了解有关这个很棒的应用程序及其制作方式的更多信息,请访问 Filament Group 的 精彩博文存档)!

插件稳定性和增强

最大的改进和变化是在单个插件代码上完成的。几乎每个插件都已从头开始完全重写,以优化稳定性和性能,并且每个插件现在都带有错误变更日志。我们还大力关注增强选项和提高灵活性(例如,将可排序项连接到可拖动项),以便在几乎所有环境中都可以使用我们的插件。

了解 jQuery UI 组件的每个增强功能的最佳方法是查看 变更日志。它非常全面,表明了 UI 团队付出的巨大努力。在不久的将来,我们将创建文章和帖子,概述 UI 组件的新功能。与此同时,我们建议您阅读我们的 关于 jQuery UI 1.5b 的博文,该博文解释了许多鼠标交互更改(可排序项、可拖动项、滑块),并自行浏览 文档变更日志

下载

jQuery UI v1.5

最终版本: http://ui.jquery.com/download

您还可以从 Subversion 存储库 签出 jQuery UI v1.5 的完整版本。

未来还有更多!

coverflow.png

这确实是一项了不起的努力,我们很自豪能够为 jQuery 社区提供一个全面的 UI 解决方案。

我们已经在计划下一个版本,并有一个巨大的路线图,其中包含诸如网格、工具提示、菜单、颜色选择器、自动完成等插件。其中许多插件已经完成并提交了代码。我们还计划使用新的技术(例如 Webkit 的 css 变换,请参阅最近的 coverflow 插件)的插件,敬请期待。

如果没有 jQuery UI 团队 的惊人努力和奉献精神,这一切都不可能实现。他们投入了大量个人和专业时间来创建这个令人惊叹的库,他们为他们的辛勤工作值得赞扬。我们还想感谢 jQuery 核心团队,我们与他们密切合作,将许多必要的功能集成到 jQuery 核心本身中。

最后但绝对不是最不重要的,我们要向 Liferay 的工作人员致以最诚挚的感谢,他们投入了无数时间来开发 新的 UI 网站,并且我们与他们紧密合作,以确保 jQuery UI 在各种企业环境中都能稳定运行。

感谢你们的支持!

Paul Bakaus & jQuery UI 团队

jQuery 1.2.6: 事件处理速度提升 100%

发布于 作者

jQuery 1.2.6 主要是一个针对 jQuery 1.2 的错误修复版本。您可以在 错误追踪器 上查看修复列表。

这是紧随 jQuery 1.2.3 之后的版本。1.2.4 和 1.2.5 版本被跳过(1.2.4 构建不正确,实际上与 1.2.3 相同,而 1.2.5 缺少补丁)。

整个 jQuery 团队在这个版本的发布上都付出了巨大的努力——我想借此机会感谢他们持续的辛勤工作。

我也想借此机会欢迎 Ariel Flesler 加入核心 jQuery 开发团队。他为这个版本的发布提供了宝贵的帮助——贡献了错误修复、性能改进、功能和测试用例。您可以在这个版本的改进中看到他的努力成果。欢迎 Ariel,并感谢他的所有贡献!

下载

jQuery 1.2.6

如果您想从 Subversion 仓库 检出完整版本,您可以 按照说明 从以下位置检出源代码

svn co http://jqueryjs.googlecode.com/svn/tags/1.2.6

性能改进

再次强调,jQuery 团队努力工作,在这个版本中带来了巨大的性能提升。与之前的版本一样,我们扩展到 jQuery 框架的许多领域,寻找常见的痛点,并提供解决方案。

以下性能改进的所有数据和测试用例都可以在以下 jQuery 1.2.3 v. 1.2.6 Google 表格 中找到(由于结果几乎相同,因此排除了 Internet Explorer 6 的结果,而选择了 Internet Explorer 7)。

事件处理速度提升 103%

在分析密集的应用程序代码(特别是拖放等操作)时,我们寻找可以进行通用更改的方法,这些更改会影响所有用户。一个经常被调用的代码片段是 jQuery 事件处理程序,对其进行任何优化都会极大地提高所有结果频繁调用事件的性能。通过专注于这里的改进,您应该看到所有频繁调用的事件立即受益。

CSS 选择器速度提升 13%

对内部 jQuery 方法进行了一些优化,极大地提高了它们的性能,并为 jQuery 中一些最常用的代码(例如 CSS 选择器代码)带来了可衡量的收益。

例如,jQuery.map() 方法现在速度提升了 866%,而 jQuery.extend() 速度提升了 19%。这两个更改使得整个库的性能都得到了显著提升。

.offset() 速度提升 21%

与 .offset() 代码的改进一起,密集的鼠标操作变得更快。例如,jQuery UI 的拖放代码由于这些更改现在速度提升了 300% 以上(让您能够实现更快、更流畅的拖放操作)。

.css() 速度提升 25%

这是一个经常被调用的方法(内部和外部)。对该方法的优化很容易在其他方法中感受到(例如 .offset())。

新功能和主要变更

尺寸插件现在是核心的一部分

Brandon Aaron 的尺寸插件的剩余方法已被引入 jQuery 核心,并附带了额外的错误修复和性能改进。这个插件在开发者和插件作者中得到了广泛的应用,并已成为 jQuery 生态系统的重要组成部分。在过去的几个版本中,我们一直在逐步引入尺寸插件中最常用的方法——但随着 1.2.6 版本的发布,所有剩余方法现在都是核心的一部分。

如果您正在升级您的 jQuery 副本到版本 1.2.6,您可以选择从您的代码中排除尺寸插件。

尺寸插件的完整文档可以在 jQuery 文档网站 上找到(并且正在与核心 jQuery 文档集成)。

.attr() 彻底改进

.attr() 方法已完全改进(解决了大约 15 个未解决的错误)。此外,该方法已被显著简化和优化。

.toggle() 现在可以接受更多函数

历史上,jQuery 的 .toggle() 函数接受两个函数(以奇偶方式切换)。但是,现在已更改为可以提供任意数量的函数,并通过鼠标单击进行切换。

$("div").toggle(function(){
  $(this).removeClass("three").addClass("one");
}, function(){
  $(this).removeClass("one").addClass("two");
}, function(){
  $(this).removeClass("two").addClass("three");
});

现在可以取消绑定绑定的 .toggle() 和 .one() 函数

function test(){ $(this).addClass("test"); }
$("div").one("click", test);
$("div").unbind("click", test);

$("div").toggle(test, test);
$("div").unbind("click", test);

.index() 支持 jQuery 集合

jQuery 的 .index() 函数允许您找到 DOM 元素在 jQuery 集合中的位置——现在您还可以指定一个 jQuery 集合(将提取第一个元素并在原始集合中找到其位置)。

var test = $("div.test");
$("div").index( test ) == 3

jQuery.makeArray 可以将任何内容转换为数组。

jQuery 的内部 .makeArray() 方法现在将任何类似数组的对象转换为新数组。此外,它将所有其他对象包装为数组并返回结果集。

jQuery.makeArray( document.getElementsByTagName("div") )
// => [ div, div, div ]

jQuery.makeArray( true )
// => [ true ]

jQuery.makeArray()
// => []

beforeSend 可以取消 Ajax 调用

beforeSend Ajax 回调允许开发者在请求发生之前执行一段代码——现在该代码还可以验证某些参数的完整性并取消结果 Ajax 请求(适用于表单验证等任务)。

$.ajax({
  beforeSend: function(){
    return $("#input").val() == "";
  },
  url: "test.php"
});

公开速度

jQuery 有一些命名的动画速度(例如“slow”、“fast”和“default”),现在您可以为动画速度提供自己的名称,或通过操作 jQuery.fx.speeds 对象来修改现有速度。

jQuery.fx.speeds.slow = 1000;
$("#test").slideDown("slow");

jQuery UI 1.5 发布候选版,我们已经迫不及待了

发布于 作者

jQuery 1.5 发布候选版现在已在 http://ui.jquery.com/download 上提供给大家测试和下载!

这是目前为止最稳定的 UI 版本,它修复了所有已知且不属于“轻微”或“琐碎”类别的错误,这意味着我们认为它已经可以发布了。然而,我们仍然延迟最终发布的原因是,我们希望您尝试我们发布候选版的每一个方面。

因此,jQuery UI 团队鼓励您在任何受支持的浏览器中尝试网站上的演示,尝试您能找到的每一个选项,并使用我们正在最终测试的新单元测试,在不同的浏览器中进行测试。如果您从网站下载完整的开发包,其中将包含滑块、拖放和调整大小的单元测试。我们正在开发其他自动化测试,将在未来几天从我们的 SVN 下载。

如果您发现任何异常情况,或者某些功能没有按预期工作/显示,那太好了 :-)!请通过新的 jQuery UI 错误跟踪器 http://ui.jquery.com/bugs/newticket 向我们提交问题。这将极大地帮助我们使最终版本尽可能地稳定。

现在我们真的不想让您等待太久:我非常高兴地宣布,jQuery UI 1.5 将在 6 月 8 日,也就是确切的 6 天后发布和公布,同时还将提供更新的文档和史诗般的变更日志,以说服您的老板和同事。

很快再见!

jQuery UI 团队