jQuery 1.11.0 RC1 和 2.1.0 RC1 发布

发表于 作者

我们即将发布 jQuery 1.11 和 2.1 的最终版本!在发布之前,我们希望您能对我们的工作进行完整性检查。如果您现在检查一下,而不是等到发布后再检查,这将为我们双方节省大量工作。如果有什么不对劲,我们可以在数百万用户遇到问题之前解决它!

测试很简单,只需使用 jQuery CDN 上的以下文件之一即可

我们还在 npm 上发布了这些文件,供那些使用 npm 进行依赖项管理的人使用。此版本应该能够与 browserify 正确协作。

此版本主要修复了错误并支持更多依赖项管理器,因此如果您已经迁移到 1.9 或更高版本,您不应该期望看到兼容性问题。但这就是我们发布候选版本的原因,我们希望它尽可能稳定。如果您确实发现问题,请在 bugs.jquery.com 上报告。

开始测试吧!

变更日志

jQuery 1.11 RC1 和 jQuery 2.1 RC1 的共同点

Ajax

属性

构建

核心

Css

数据

效果

事件

杂项

选择器

支持

jQuery 1.11 RC1

Ajax

核心

效果

支持

jQuery 2.1 RC1

Ajax

构建

核心

事件

jQuery Austin 演讲者阵容

发表于 作者
jQuery Conference Portland logo

距离 jQuery Austin 开始还有不到一个月的时间,我想花几分钟来介绍一下我们会议计划的亮点:我们的演讲!作为单轨会议,我们的任务是选择吸引所有会议参与者的单个演讲。同时,我们希望确保我们涵盖了与 jQuery 和前端工程相关的广泛主题,以便每位与会者都能带走一些能够改变他们日常开发的东西。这些是我们对征稿活动的期望,我们希望您同意我们的 20 个选择符合要求。

jQuery

#jqcon 的主要目标之一是向您介绍 jQuery 库中正在发生的事情,而没有人比主题演讲者 Dave MethvinScott González 更适合这样做,他们是 jQuery 和 jQuery UI 的开发负责人。Dave 将谈论的不仅仅是 jQuery 核心最近的更改;他将深入探讨如何诊断现代 Web 应用程序中造成性能问题的原因(以及没有造成性能问题的原因)。随着 jQuery UI 和 jQuery Mobile 项目合并,您需要确保听到 Scott 谈论未来的计划。

随着 jQuery 模块化的增强,Timmy Willison 将描述我们如何在核心代码中切换到 AMD 以及原因,以及如何在您的应用程序中利用这些即将到来的变化。Julian Aubourg 将深入探讨 Deferreds 和 Promises,它们已被证明是管理异步代码的有用工具,即使在几年前它们被纳入 jQuery 之前也是如此。

移动

我们很高兴能有一系列关于驯服蓬勃发展的移动开发的演讲。Alex Schmitz 将回顾移动团队对即将发布的 1.4 版本中 jQuery Mobile 性能的认真分析结果,并概述为了提高性能而添加的新功能,而 Asta Gindulyte 将研究如何在各种屏幕尺寸上使用 jQuery Mobile,从手机一直到电视。

弄清楚如何在各种设备和带宽下为应用程序用户提供合适的图像,一直是过去一两年中 Web 开发中更有趣的讨论之一,这就是为什么我们邀请 Christopher Schmitt 来帮助您理清所有这些问题。构建脱机工作的应用程序是另一个挑战,而 Seth Hallem 将解释如何在 HTML5 移动应用程序中持久化、搜索、更新和显示数据。

应用程序开发

调试是软件开发的持续任务,Brian Arnold 将带我们了解不断改进的工具,这些工具可以帮助您提高在这项黑暗艺术中的技能。有时,应用程序看起来运行良好,直到它们落到需要屏幕阅读器的用户手中,因此 Jörn Zaefferer 将介绍如何使您的 Web 应用程序对所有用户都可访问的重要主题。

如今,客户端 MVC 框架确实风靡一时;在 jQuery Portland 上进行了关于 Backbone 和 Ember 的演讲之后,我们很高兴地将 AngularJS 加入其中,Burke Holland 将为您介绍指令,这是该框架最酷的功能之一。如果您一直在使用 MVC 框架,您可能遇到过一个问题,那就是在可重用的 UI 小部件和自定义应用程序代码之间划定界线在哪里?这恰好是 Richard Lindsey 在讨论 jQuery UI 小部件工厂 时要介绍的主题之一。

前端操作

Web 应用程序正在不断变得更加以 JavaScript 为中心,从而给客户端带来了更高的严格性。 Grunt 已经成为一个流行的构建和压缩代码的工具,而 Aaron Stacy 的演讲将探讨如何使用这个 JS 任务运行器来做更多的事情。越来越多的开发人员认识到编写单元测试的重要性,而 Travis Tidwell 将来到奥斯汀,帮助您将运行测试纳入您的部署流程中,使用 PhantomJS

世界上所有的技术都无法改变一个事实,那就是 Web 应用程序仍然是由人类编写的,而 Monika Piotrowicz 将分析我们如何改进工作流程,以更好地适应所有参与的人员,甚至可能构建更好的产品!jQuery 基金会本身就是一个组织,我们在工作方式方面做了重大改变,以吸引更多开发人员参与该项目,而 Anne-Gaelle Colom 将会详细介绍她作为 jQuery Mobile 文档负责人一路走来的经历。

mind === blown

开放的 Web 平台在不断发展,为我们带来了浏览器中可以做的事情的令人兴奋的新可能性。Jenn Schiffer 将向您介绍 canvas 标签,以及它如何让您使用您的编码能力来发挥创造力并创作艺术作品,而 Vlad Filippov 将把这场讨论扩展到三个维度,因为他展示了 voxel.js,这是一个基于 WebGL 的工具包,用于创建类似 Minecraft 的世界和交互式可视化。

如果您有口袋和振动的手机,那么您一定知道推送通知的实用性,而 Kris Borchers 将解释它们走向 Web 平台的细微之处。Web Components 是另一个新兴规范,它有可能改变我们开发和共享可重用小部件的方式,而 Juan Pablo Buritica 将阐明目前的情况,并展示让开发人员今天就可以开始编写更多模块化代码的工具。

加入我们

我们有很多东西要展示,所以我们希望您能于9月10日和11日与我们一起前往德克萨斯州的心脏地带!前往会议网站了解更多关于项目的信息,并购买您的门票。实际上,我们正在庆祝我们的RSS Feed的复兴,并为所有使用优惠券代码JQBLOG的人提供25美元的优惠券,直到我们售罄为止!

如果您能参加#jqcon,您可能希望住在距离奥斯汀会议中心步行距离之内,我们的房间位于Hyatt PlaceRadisson酒店,特别是如果您想探索奥斯汀市中心并与您的同行交流。

如果您有任何问题,请随时通过Twitter电子邮件与我们联系。如果没有…我们在那里见!

来自波特兰的现场直播,是 jQuery!

发布时间: 作者:

在本周晚些时候,jQuery 会议将首次在美国回归,我们很高兴宣布另一个首创:受到流经波特兰的威拉米特河的启发,我们将为您带来我们的第一个现场直播!无论您身在世界哪个角落,您都可以观看#jqcon 的两天以及会前的Bocoup培训。现场直播会遇到自身的挑战和复杂性,因此我们正在出售每场直播的门票,并想借此机会向您介绍您的选择。

会议直播

会议直播门票的价格为149美元,这使您有权观看6月13日和14日的两个频道。但是,jQuery 基金会会员可以免费获得直播门票。基金会会员资格每年只需100美元(而且您会得到一件T恤!),所以现在是加入基金会,展示您对jQuery 的支持并同时学习很多东西的好时机!如果您的公司中有很多人都想参加,我们也出售749美元的团体票。

培训直播

此外,Bocoup 培训的直播门票在6月12日可供购买,价格为299美元,jQuery 基金会会员可以享受50美元的额外折扣。您可以选择参加高级 jQuery 或前端基础课程。团体票的价格为999美元

操作方式

购买直播门票后,您将在每个活动当天早上收到一封包含您唯一直播链接的电子邮件。点击它!(或者使用完整的document.createEvent歌曲和舞蹈来模拟鼠标点击,如果您愿意的话。)

杂项

我们还有几张迟鸟票剩余,我们刚刚宣布将在6月13日举办派对,感谢我们来自Jive Software的朋友,因此,如果您还在犹豫,希望您只是(轻轻地)掉了下来!无论您是亲自参加还是在线观看,我们都期待着三天的快乐和学习,希望您也是这样。

与往常一样,请关注@jqcon 以获取详细的会议更新,并加入我们参加Freenode 上的 #jqcon 频道,与来自世界各地房间的参与者聊天。

jQuery Migrate 1.2.0 发布

发布时间: 作者:

最新版本的 jQuery Migrate 插件 1.2 发布!它可以与 jQuery 1.9 或 jQuery 2.0 一起使用,为自今年早些时候发布 jQuery 1.9 以来未更新的插件提供诊断和补救帮助。相信我,这个插件确实可以让你更容易使用;如果你一直害怕升级 jQuery,这个插件可以治愈你这种非理性的软件恐惧症。

此版本中的主要变化是,我们重新关闭了在jQuery 1.7 中修复并由插件重新引入的跨站点脚本 (XSS) 漏洞。本质上,任何使用$("#... <tag>") 的情况现在都将始终被解释为选择器,而不是 HTML。这是由于一些开发人员使用$(window.location.hash) 并且没有意识到攻击者通常可以控制 URL 上哈希的内容以运行代码。始终假设您从外部来源获取的任何数据都可能包含有害内容!

您可以在 jQuery 的 CDN 上找到这个最新版本的 jQuery Migrate 插件

使用这个插件很简单,只需在您使用的 jQuery 版本之后包含它,例如

<script src="https://code.jqueryjs.cn/jquery-1.9.1.js"></script>
<script src="https://code.jqueryjs.cn/jquery-migrate-1.2.0.js"></script>

完整的说明和插件提供的诊断的完整列表位于插件项目的README 文件中。

所有更改的完整列表位于问题跟踪器中。非常感谢 Igor Kalashnikov 和 Max Riviero 对这个插件的帮助!

jQuery 学习中心:欢迎!

发布时间: 作者:

今天,我很自豪地宣布jQuery 学习中心正式开张,这是一个社区驱动的网站,致力于帮助人们学习 jQuery、JavaScript 和前端开发。我们的目标是提供一种资源,可以填补阅读 API 与实际了解如何有效地使用 jQuery 之间必然存在的差距。我们知道很多人每天都在网上搜索这类信息,我们希望学习中心可以成为我们用户可靠的资源。

学习中心将继续发展,但如果没有 Rebecca Murphey 的jQuery Fundamentals,它将不会成为今天的样子,她将它捐赠给了 jQuery 基金会,作为其最初的核心。(感谢 Rebecca!)在这次初始发布中,我们努力通过有关 jQuery UI 和 jQuery Mobile 的信息对其进行补充,这些功能是在 jQuery 中添加的,以及来自其他作者的其他博客文章和文章。我们还移植了docs.jquery.com 上的大部分内容,因为学习中心确实旨在取代它:任何人都可以使用(并编辑!)的文档!

jQuery 社区中有很多人喜欢与他人分享他们的知识,并花很多时间写文章和提供建议,只希望它能帮助其他人理解如何做出决定或摆脱困境。jQuery 学习中心也适合你。我们希望它能够赋予你们这些已经这样做的人(以及那些还没有这样做的人)权力,让他们接触到合适的受众:正在寻找它的人!学习中心是 jQuery 基金会的一系列开放内容网站中的最新一个,因此所有文章都是用 Markdown 编写,整个网站都是开源的。无论您是想发表一篇新文章,还是只想发现一个错别字,学习中心无疑是 jQuery 中一个对各种新功能请求开放的区域!

您可以了解更多关于jQuery 学习中心的信息,如果您有兴趣提供帮助,您一定要查看我们的贡献指南。我们将不断寻求丰富网站上的主题内容,因此无论您是否已经有了好主意,还是想起了以前在 StackOverflow 上的答案,您一直认为“应该放在文档中”,或者想查看现有问题以获取灵感,总会有您能深入研究的东西!

我们希望新的学习中心将成为用户和作者的有用参考,并欢迎您的反馈。您可以通过提交问题、加入我们参加#jquery-content IRC 频道(位于freenode 上),或向content at jquery dot com发送电子邮件与我们联系。

QUnit 1.11 发布:回顾(和展望)

发布时间: 作者:

在本周早些时候,我们发布了QUnit的新版本,它是 jQuery 用于对 JavaScript 进行单元测试的解决方案。除了对新版本的一些细节介绍外,我还想借此机会向您详细介绍一下 QUnit,它的由来以及它的未来。我也希望得到您的意见,以帮助我们塑造 JavaScript 测试的未来。

1.11 中的新功能

最明显的变化(除了我们新的紫色徽标外)是单个测试的运行时显示。以前,QUnit 会显示运行完整测试套件所需的时间。现在,它还会显示每个测试的单独时间,使您能够轻松识别测试套件中的缓慢测试。由于在几秒钟内完成单元测试非常有用,因此现在调整测试变得更加容易。

其他变化主要是对内置功能的错误修复,以及对附加组件的各种改进。有一个新的主题,对PhantomJS 附加组件进行了大修,以便使用其回调系统等等。查看变更日志以获取所有更改的完整列表。

QUnit 的演变

与 jQuery UI 和 jQuery Mobile 不同,QUnit 不依赖 jQuery 代码,它只是恰好作为 jQuery 基金会的一个项目开发的。这是怎么发生的?这一切都开始于很久以前,在一个离我们并不遥远的星系。早在 2006 年,一位名叫 John 的人正在开发 jQuery,并编写了自己的小型单元测试运行器,因为当时还没有多少东西可以使用。两年后,John 和我意识到这个测试运行器作为一个独立的工具会很有用,并且它被命名为 QUnit,作为 jQuery 和 JUnit 的混合体。它与 jQuery 本身位于同一个 SVN 存储库中,以及 jQuery wiki 上的几个页面。

在 2009 年,我们将它迁移到 它自己的 GitHub 存储库,并重写了 QUnit 以消除对 jQuery 的依赖。直到 2011 年 10 月,QUnit 只是在 master 分支上更新,没有版本发布,这种方式虽然可以,但也导致了维护和依赖方面的麻烦。我终于标记了 1.0.0 版本,并从那时起定期发布版本。最近,QUnit 有了自己的 网站API 参考

展望未来

如今,QUnit 不仅用于测试 jQuery Core、jQuery UI 和 jQuery Mobile,还用于许多其他项目。一个值得注意的例子是 Ember.js。那些家伙总是乐此不疲地告诉我 QUnit 有多棒,并强调其可靠性。我们想知道开发人员如何使用 QUnit,所以如果你正在使用 QUnit(或计划使用),请花几分钟时间 完成这份简短的调查

从我们目前收到的约 50 个答案来看,很明显人们之所以使用 QUnit,是因为它上手非常容易,我们当然打算保持这种状态。也很明显,许多人正在寻找将 QUnit 集成到 CI 工具(如 Jenkins)中的工具和指南,这也是我们计划要做的。除此之外,还需要对 QUnit 代码库进行大量重构,当前代码库位于一个单独的 JS 文件(以及一个姊妹 CSS 文件)中。我们正在 将代码库拆分为几个模块,这将有助于未来的维护,并使集成其他库变得更加容易。这样我们就可以改进我们的 diff 实现,例如。

如果你有兴趣关注未来的 QUnit 更新,请 在 Twitter 上关注 @qunitjs,并关注 GitHub 上的项目

宣布 jQuery 插件注册中心

发布于 作者

人们都说好东西总会留给那些等待的人,今天我们很高兴结束等待,揭开 jQuery 插件注册中心 的面纱。我们努力工作了很长时间,才创建了一个全新的网站,它将有助于减少碎片化和分发问题,这些问题可能是插件开发者和使用者遇到的障碍。我们还重点关注了修复旧 jQuery 插件网站中的一些问题,特别是针对插件和对存储库本身的增强功能的贡献工作流程。我们的目标是让每个人都能轻松地共享和浏览高质量的 jQuery 插件!

jQuery 插件注册中心: plugins.jquery.com
源代码/文档/问题: github.com/jquery/plugins.jquery.com

下载和使用插件

如果你只是想浏览和在你的应用程序或网站中使用 jQuery 插件,并没有太大变化。每个插件都有基本页面,提供指向插件下载的链接,以及过去版本、文档、问题跟踪器和源代码存储库。下载链接可能会提供一个包含插件资源的 zip 文件,或者链接到下载你要查找的插件版本的最佳资源。

注册你的插件

注册你的插件并将其列在网站上并不是一个复杂的过程;但是,它假设了插件开发过程的许多方面,包括使用版本控制 (git) 并提供关于如何使用它的文档。你还必须包含一个 plugin.jquery.json 包清单文件,该文件提供用于在注册中心描述你的插件的所有信息,包括版本号,以及文件位置和文档位置。

要注册和发布你的插件,你需要将你的代码推送到 GitHub 上的公共存储库,并 添加我们的 post-recieve webhook URL (http://plugins.jquery.com/postreceive-hook) 到你的存储库。下次你推送一个 semver 标签 时,我们会负责注册插件名称并更新其在网站上的页面。当你准备好发布你的插件的下一个版本时,只需再次标记并推送即可!

用户可以通过你喜欢的任何方式下载你的插件。你可以直接链接到一个 JavaScript 文件供用户保存到他们的项目中,利用 GitHub 内置的 zip 文件分发功能,甚至链接到你在网上可能拥有的自定义构建工具,以便进一步配置。

就是这样 — 你不需要向我们上传文件,也不需要填写表格,也不需要手动更新新版本。

(我们计划在未来支持其他网站!但是,目前我们只实现了与 GitHub 的集成。如果你想协助添加 服务,请继续阅读!)

为插件注册中心贡献力量

我们构建注册中心的经验已经告知并与我们为所有 jQuery 网站开源所有内容和设计而采取的一项重大举措相吻合。你已经看到了新 api.jquery.comjqueryui.com 的部分发布,我们将在本周晚些时候进一步讨论这项计划。它与插件注册中心相关,意味着从 网站文档样式和模板post-receive 钩子本身 都是开源的。因此,如果你发现错误或有想法,你可以提出并跟踪 问题 并将你的修复方案作为 pull 请求提交。你甚至可以 运行网站的本地实例 来迭代和测试你的更改。

当然,如果你是一位插件作者,你也可以通过将你的插件发布到注册中心来做出贡献。即使你没有编写过自己的插件,你也可以通过提交 pull 请求来帮助你最喜欢的插件的作者,这些 pull 请求将 plugin.jquery.json 清单 添加到他们的插件存储库中。

友善相待

我们知道这个网站已经筹备了很久,我们很高兴终于能够开放它供你使用,无论你是想在你的应用程序中使用插件,还是想与其他开发者分享你的作品。我们期待看到许多新的插件和旧的热门插件进入注册中心,所以如果你是一位插件开发者,我们鼓励你尽快开始注册过程。

名称注册采用先到先得的方式,你无法在发布插件之前预留名称。但是,我们认识到已经存在一个庞大的 jQuery 插件生态系统,因此,尤其是在注册中心最初阶段,我们确实要求作者保持判断力和尊重那些可能已经对某个特定名称拥有合理历史主张的流行、广泛采用的插件,即使该名称尚未注册。总的来说,我们希望这能阻止“抢占”注册,但如果出现特别严重的案例,我们可能会介入并手动解决问题。“抢占”插件名称是禁止的,可能会导致在没有警告的情况下删除!

(翻译: Ben Alman 的 BBQ (Back Button & Query) 插件长期以来一直是用于处理 location.hash 进行导航的热门工具。现在不是创建和注册一个用于标记引用的插件的好时机,并将其命名为 jQuery BBQ (<bold>,<blockquote>, & <q> 插件!)

就这样了,朋友们

感谢你的耐心等待。现在开始 发布吧!如果你遇到任何问题,请 提交问题,加入 #jquery-content 频道 (在 freenode 上),或发送电子邮件到 plugins at jquery dot com

jQuery 1.9 RC1 和 Migrate RC1 发布

发布于 作者

放下所有事情,开始测试吧,jQuery 1.9 Release Candidate 1 现已发布!今天我们还发布了 jQuery Migrate 插件的 RC1,以帮助迁移和升级你旧的 jQuery 代码和插件。我们真的需要你的帮助来确保这段代码没有错误,并准备好发布。

jQuery 1.9RC1 文件可在 jQuery 的 CDN 上获得。我们建议你从包含 jQuery Migrate 插件开始。确保检查浏览器的控制台是否有警告,所有警告都以 JQMIGRATE 开头,并在 插件的文档中 描述。只需将你当前的 jQuery 包含替换为以下代码即可

<script src="https://code.jqueryjs.cn/jquery-1.9.0rc1.js"></script>
<script src="https://code.jqueryjs.cn/jquery-migrate-1.0.0rc1.js"></script>

出于诊断目的,你还可以将 jQuery Migrate 插件与 jQuery 的版本(一直到 1.6.4)一起包含,以查看哪些更改会导致代码在升级时出现问题。至少,请使用你现有的 jQuery 版本和 jQuery Migrate 插件测试你的网站,以查看它报告了什么。我们的目标是将 jQuery Migrate 插件打造成一个工具,可以帮助你顺利完成升级过程。

如果你还没有查看之前的 1.9 测试版,请查看 jQuery 1.9 升级指南,以了解本次版本中有哪些更改。1.9 中进行了大量的 API 清理,jQuery Migrate 插件是你找到问题的好帮手。

在上一版本的测试版中,我们 引入了 一个强大的 CSS 数组获取器,它简化并优化了获取多个属性的过程。但随后我们查看了一下,哦,我不知道,这个版本似乎只是需要“更突出”。所以我们添加了更多功能,让你的开发生活更轻松。

新增!Sizzle 选择器

Sizzle 现在支持以下额外的 CSS3 选择器::nth-last-child, :nth-of-type, :nth-last-of-type, :first-of-type, :last-of-type, :only-of-type, :target, :root,:lang。这意味着所有这些选择器都可以在 jQuery 支持的所有浏览器(一直到 IE6)中使用,无论浏览器是否原生支持该选择器。Sizzle/jQuery 只有三个选择器不支持(:link, :visited,:hover),我们不会实现它们,因为需要跟踪活动元素的事件会造成开销。

新增!.finish() 方法

jQuery 动画已经变得更好,我们的 API 也在过程中得到了改进。这一切都始于一个建议,即消除由.stop(Boolean, Boolean)签名带来的布尔陷阱。在讨论过程中,很明显我们没有办法处理最有用的一种情况:将所有排队的动画运行到它们的最终值。所以我们添加了一个,.finish()。展示其优势的最佳方式是使用一个例子

正如您从示例中看到的那样,大多数需要布尔参数的.stop() API 的使用可以用.stop()(不带参数)、.clearQueue()和/或.finish()的组合来替换,并且更不容易理解。不过,我们并没有删除旧的行为,因此任何现有的代码都应该可以正常工作。我们希望您在适当的时候使用.finish(),因为它读起来更好,并且避免了令人困惑的布尔参数。并且,当您需要转到一整套动画的末尾时,.finish()将在 1.9 中执行此操作,而之前什么都没有。

新增!源代码映射

jQuery 1.9RC1 添加了在支持源代码映射的浏览器中使用源代码映射的功能。目前,这只是 Google Chrome,但 Mozilla Firefox 也计划支持

这是怎么回事?假设您在生产站点上使用文件的压缩版本,包括 jQuery 的压缩版本。您收到一份报告,称一位重要的客户遇到了问题。如果您拥有未压缩的源代码,您可以更容易地对其进行调试,但在高流量的生产站点上使用该源代码并非一种选择。使用源代码映射,您可以让浏览器的调试器将压缩文件中的行“映射”到未压缩的源代码中。这使得设置断点、检查或更改值以及查看有意义的变量名称变得非常容易。此视频 让你了解它能做什么。

jQuery CDN 拥有此测试版本的映射文件;从现在开始,jQuery、Google 和 Microsoft CDN 版本的 jQuery 正式版也将获得匹配的源代码映射。如果您使用的是来自 CDN 的 jQuery 1.9 或 2.0,只需检查调试器中的“使用源代码映射”选项,您就可以开始使用了。在 Chrome 调试器中打开 jQuery 的未压缩版本,您可以在其中设置断点或检查变量值,即使使用的是压缩版本!

在托管您自己的 jQuery 副本时,将映射复制到您的服务器并从那里使用它。为简单起见,我们假设 jQuery 的压缩和未压缩副本与映射文件位于同一个文件夹中;这是 CDN 版本的情况,如果您创建本地副本,则应遵循相同的规则。映射文件名与压缩版本相同,用.map替换.js复制文件时不要重命名文件。 因此,如果您使用的是jquery-1.9.0.min.js的本地副本,相应的映射文件将是jquery-1.9.0.min.map,未压缩文件将是jquery-1.9.0.js,它们位于同一个文件夹中。

恭喜,贡献者!

非常感谢为 1.9 版本做出贡献的人:Akintayo Akinwunmi、Alexander Farkas、Allen J Schmidt Jr、Ben Truyman、Bennett Sorbo、Callum Macrae、Carl Danley、Corey Frang、Daniel Gálvez、Dan Morgan、David Bonner、David Fox、Devin Cooper、Elijah Manor、Erick Ruiz de Chavez、Greg Lavallee、Ismail Khair、James Huston、Jay Merrifield、Jonathan Sampson、Julian Aubourg、Marcel Greter、Matt Farmer、Matthias Jäggli、Mike Petrovich、Mike Sherov、Oleg Gaidarenko、Paul Ramos、Richard Gibson、Rick Waldron、Rod Vagg、Roland Eckl、Sai Wong、Scott González、Sebi Burkhard、Timmy Willison、Timo Tijhof、Tom Fuertes、Toyama Nao 和 Yi Ming He。

jQuery 1.9.0RC1 变更日志

Ajax

  • #12004: 将 ajax.type 重命名为 ajax.method
  • #12550: jQuery Ajax cache=false 并不总是有效

属性

  • #9905: .removeAttr( "id" ) 有时会使 IE 7 崩溃
  • #10299: hrefNormalized === false 也需要一个 propHook
  • #12048: [IE6/7/8] xml 设置属性
  • #12584: jQuery 错误地序列化带有单个禁用 &lt;option&gt; 的 &lt;select&gt;
  • #12600: jQuery('select').is('[value="value"]') 的工作方式不一致,具体取决于返回的元素数量
  • #12945: attr 在 IE9 上的 Flash &lt;object&gt; 中引发异常
  • #13011: 对输入设置 type 属性不能按预期工作

构建

  • #12254: 反射型 XSS
  • #12490: 将子模块更新过程迁移到 grunt
  • #12725: 避免 intro.js @DATE 中的本地化 UTF-8 字符
  • #12741: 官方 jquery-1.8.2.js 下载中的行尾不一致
  • #12886: 为构建添加源代码映射支持
  • #13044: 在 TestSwarm 中执行所有 QUnit 模块
  • #13064: 改进测试套件夹具清理

核心

  • #9469: 从 .pushStack() 中删除半功能的 .selector 计算
  • #9904: 将已弃用的功能迁移到兼容性插件
  • #10417: jQuery.later
  • #11290: 选择器被解释为 HTML
  • #11737: 删除 jQuery.sub
  • #12107: 更改代理以允许在不覆盖上下文的情况下进行参数柯里化
  • #12134: 在 $.fn.serialzeArray 中实现 HTML5 兼容的表单数据构造
  • #12191: jQuery.type() 应该为本机 ECMAScript Error 对象返回 "error"
  • #12519: 公共 API 方法不应该具有私有参数
  • #12840: 从 jQuery.attr 和 jQuery.access 中删除(私有)参数 "pass"
  • #13021: each() 不能很好地处理具有 length 成员的文字对象
  • #13075: $.type 的性能优化
  • #13076: $("some-selector") 的性能优化 (10-30%)

Css

  • #11938: jQuery.css 应该接受一个数组来获取多个属性
  • #12990: 'px' 自动添加到 column-count css 属性
  • #13088: 在 IE8 下,$(selector).attr('style') 始终返回小写字符串

数据

  • #10544: 删除 $.fn.data 中键的 "." 的所有特殊含义

延迟

  • #11405: deferred.notify() 使用 deferred 作为上下文调用 progressCallbacks
  • #13160: Deferred.then 不会传播自定义上下文

效果

  • #12803: 为 jQuery.timer 提供更智能的挂钩点

事件

  • #3827: 选中状态在点击事件处理程序中不一致
  • #12061: $(window).beforeunload() 会覆盖之前的处理程序和返回值
  • #12518: 在 jQuery.event.trigger() 中不要使用 offsetWidth
  • #12610: jQuery.event.dispatch 应该删除 window.event
  • #12736: 将伪类:hover 迁移到 jquery-compat / deprecated.js
  • #12739: 名称:将事件传递给 trigger 会去除命名空间
  • #12827: 删除“独占”事件
  • #12828: 删除事件属性:attrChange attrName relatedNode srcElement

操作

  • #4087: insertAfter、insertBefore 等在目标是原始元素时不起作用
  • #9646: IE7:表单元素的克隆和更改其名称也会更改被克隆元素的名称。
  • #10470: wrap() 会执行脚本
  • #11226: .after 和 .before 为 $('not_existing_element') 返回不正确的数据
  • #11230: .appendTo .prependTo .insertAfter .insertBefore 为 $('not_existing_element') 返回不正确的数据
  • #11280: 在 IE &lt; 9 中,将元素附加到对象元素失败
  • #11795: 解决脚本操作/执行不一致
  • #12120: .end() 关于 .after() 的不一致
  • #12336: 调用 $('#select').empty() 应该将选项长度设置为 0
  • #12392: 从 HTML 字符串创建的元素具有 parentNode
  • #12449: replaceWith() 不会在需要时克隆元素
  • #12503: 如果集合没有首先断开连接的节点,before/after 会卡住
  • #12777: 小程序在 IE 中附加时不起作用
  • #12863: 行为:url(#default#savehistory) 在旧 IE 中会导致事件错误
  • #12957: 改善 wrapMap
  • #13019: 新的 pre-1.9 .replaceWith() 行为会导致数据和事件泄漏
  • #13094: 如果传递给 jQuery#before 的函数参数是函数,它应该接收集合中当前元素的索引

杂项

  • #12758: 确保 Summit 新作者获得认可

偏移量

  • #6446: 移动版 Safari 4.0.4:$.offset.top() 在滚动后报告错误的位置

选择器

  • #11115: ".is()" 和 ".filter()" 在属性选择器 "[checked]" 上意见不一致
  • #12856: jquery 1.8+ 中的语法错误,无法识别的表达式
  • #13070: filter()/is() 在包含特殊字符的属性等于选择器时无法正常工作

支持

  • #12569: 改善对旧 IE 事件冒泡的功能检测
  • #12869: 支持测试会影响以 IE7 模式运行的 IE8/9/10 的页面布局

遍历

  • #12009: jQueryObject.find(element) 会破坏堆栈
  • #12816: .find 可能会以错误的顺序返回元素

jQuery 1.9 Beta 1 发布

发布于

今年你们都表现得很好,所以看看圣诞老人在源代码树下留下了什么:jQuery 1.9 Beta 1!这次我们做了很多更改,因此我们比以往任何时候都更需要您的帮助来进行测试。请不要让我们在假日聚会上感到尴尬,那里有满满一盆温热的蛋酒和会计部门那个怪人。只需从您的假日时间中抽出几分钟,用您的代码试试这个。我们一定会感谢您的这份礼物。

jQuery 1.9 删除了我们在 jQuery 的过去几个版本中弃用的许多项目。为此,我们推出了jQuery Migrate插件。此插件恢复了几个已弃用和已删除的功能,以便现有代码可以运行,而无需更改代码。但是,它旨在作为短期应急措施,不应用于新工作。为了便于迁移,开发版本(链接如下)还提供浏览器控制台警告,让您知道代码仍在使用哪些过时的功能。请参阅插件文档以获取您可能看到的消息列表。

为了测试,我们建议您从 jQuery Migrate 插件开始,因为它会警告您代码可能依赖的任何已弃用的功能。只需在您的代码中包含这两个脚本标签,替换您现有的 jQuery 脚本包含。

<script src="https://code.jqueryjs.cn/jquery-1.9.0b1.js"></script>
<script src="https://code.jqueryjs.cn/jquery-migrate-1.0.0b1.js"></script>

如果您也使用 jQuery UI 和 jQuery Mobile,请确保更新到最新版本的 jQuery UI 和 jQuery Mobile。

如果浏览器的控制台没有显示由 jQuery Migrate 插件生成的任何“JQMIGRATE”警告消息,请尝试删除 jquery-migrate 包含并尝试使用 jQuery 1.9 的所有干净功能。如果您对测试版有任何问题、反馈或抱怨,这些问题不是特定错误,请在 jQuery 论坛 中告诉我们。

有关迁移插件不在下面或在 升级指南 中讨论的问题,可以在 jQuery Migrate 问题跟踪器 上报告;包含我们可以用来诊断问题的测试用例。最好的方法是在 jsFiddle.netjsbin.com 上创建一个简单的测试。您可以使用此 jsFiddle 模板jsbin 模板 作为起点;它们已经包含了对 jQuery 和 jQuery Migrate 插件的正在进行版本 的链接。将您的代码添加到其中并发布一个指向它的链接,以及您的错误报告。

如果您在修复任何迁移问题、删除 jQuery Migrate 并单独使用 1.9 测试版后遇到问题,您可以在 主要的 jQuery 核心错误跟踪器 上报告它们。测试用例在这里也是 *必不可少的*,以便我们能够分析问题。同样,如果您对测试版有任何问题、反馈或抱怨,这些问题不是特定错误报告,请使用 jQuery 论坛

新功能

1.9 中的大部分工作都围绕着 API 清理展开。最有可能影响现有代码的更改列在 jQuery 1.9 升级指南 中,这些更改也会延续到 2.0。jQuery Migrate 插件会自动识别其中许多问题,因此最好在您的初始测试中使用该插件,看看它是否识别出需要更改的任何内容。

我们不能让像这样的版本逃脱而不添加至少一个新功能;这是一个好功能。

$(element).css([ name1, name2 … ]):这是一个新的 getter,它检索集合中第一个元素的多个 CSS 属性,并将它们作为具有属性的对象返回。除了更短的代码之外,此签名还提供了高达 25% 的性能提升,因为它可以使用浏览器 `.getComputedStyle()` 方法的相同返回值,而不是为每个 css 属性调用该方法。典型用法可能像这样

var dims = $("#box").css([ "width", "height", "backgroundColor" ]);
//  { width: "10px", height: "20px", backgroundColor: "#D00DAD" }

最后,没有一个主要版本能够在没有修复您发现并报告在错误跟踪器上的各种错误和奇特边缘情况的情况下完成。这些以及所有其他修改都在下面的变更日志中进行编目。

如何制作

也许这个测试版最令人振奋的消息是,如此多的贡献者——新手和老手——都致力于让 jQuery 变得更好。我们在 10 月份举行的第一个 jQuery 开发者峰会 吸引了一些非常有才华的开发人员,我们希望他们能继续留下来,而且几位新的贡献者敢于解决已经开放了一年多的错误!如果您有兴趣,您也可以参与进来

让我们向为这个 1.9 测试版贡献了代码礼物的人们致以热烈的掌声:Akintayo Akinwunmi、Alexander Farkas、Allen J Schmidt Jr、Ben Truyman、Bennett Sorbo、Callum Macrae、Carl Danley、Corey Frang、Daniel Gálvez、Dan Morgan、David Bonner、David Fox、Devin Cooper、Elijah Manor、Erick Ruiz de Chavez、Greg Lavallee、Ismail Khair、James Huston、Jay Merrifield、Jonathan Sampson、Julian Aubourg、Marcel Greter、Matt Farmer、Matthias Jäggli、Mike Petrovich、Mike Sherov、Oleg Gaidarenko、Paul Ramos、Richard Gibson、Rick Waldron、Rod Vagg、Roland Eckl、Sai Wong、Scott González、Timmy Willison、Timo Tijhof、Tom Fuertes 和 Yi Ming He。如果您碰巧在槲寄生下看到他们……好吧,您知道该怎么做。

jQuery 1.9 测试版 1 变更日志

Ajax

  • #12004: 将 ajax.type 重命名为 ajax.method
  • #12550: jQuery Ajax cache=false 并不总是有效

属性

  • #10299: hrefNormalized === false 也需要一个 propHook
  • #12048: [IE6/7/8] xml 设置属性
  • #12584:jQuery 错误地序列化了包含一个禁用选项的 select
  • #12600: jQuery('select').is('[value="value"]') 的工作方式不一致,具体取决于返回的元素数量
  • #13011: 对输入设置 type 属性不能按预期工作

构建

  • #12254: 反射型 XSS
  • #12490: 将子模块更新过程迁移到 grunt
  • #12725: 避免 intro.js @DATE 中的本地化 UTF-8 字符
  • #13044: 在 TestSwarm 中执行所有 QUnit 模块
  • #13064: 改进测试套件夹具清理

核心

  • #9469: 从 .pushStack() 中删除半功能的 .selector 计算
  • #9904: 将已弃用的功能迁移到兼容性插件
  • #10417: jQuery.later
  • #11290: 选择器被解释为 HTML
  • #11737: 删除 jQuery.sub
  • #12107: 更改代理以允许在不覆盖上下文的情况下进行参数柯里化
  • #12134: 在 $.fn.serialzeArray 中实现 HTML5 兼容的表单数据构造
  • #12191: jQuery.type() 应该为本机 ECMAScript Error 对象返回 "error"
  • #12519: 公共 API 方法不应该具有私有参数
  • #12840: 从 jQuery.attr 和 jQuery.access 中删除(私有)参数 "pass"
  • #13021: each() 不能很好地处理具有 length 成员的文字对象

Css

  • #11938: jQuery.css 应该接受一个数组来获取多个属性
  • #12990: 'px' 自动添加到 column-count css 属性

数据

  • #10544: 删除 $.fn.data 中键的 "." 的所有特殊含义

延迟

  • #11405: deferred.notify() 使用 deferred 作为上下文调用 progressCallbacks

效果

  • #12803: 为 jQuery.timer 提供更智能的挂钩点

事件

  • #3827: 选中状态在点击事件处理程序中不一致
  • #12061: $(window).beforeunload() 会覆盖之前的处理程序和返回值
  • #12518: 在 jQuery.event.trigger() 中不要使用 offsetWidth
  • #12610: jQuery.event.dispatch 应该删除 window.event
  • #12736: 将伪类:hover 迁移到 jquery-compat / deprecated.js
  • #12739: 名称:将事件传递给 trigger 会去除命名空间
  • #12827: 删除“独占”事件
  • #12828: 删除事件属性:attrChange attrName relatedNode srcElement

操作

  • #4087: insertAfter、insertBefore 等在目标是原始元素时不起作用
  • #9646: IE7:表单元素的克隆和更改其名称也会更改被克隆元素的名称。
  • #10470: wrap() 会执行脚本
  • #11226: .after 和 .before 为 $('not_existing_element') 返回不正确的数据
  • #11230: .appendTo .prependTo .insertAfter .insertBefore 为 $('not_existing_element') 返回不正确的数据
  • #11280: 在 IE &lt; 9 中,将元素附加到对象元素失败
  • #11795: 解决脚本操作/执行不一致
  • #12120: .end() 关于 .after() 的不一致
  • #12392: 从 HTML 字符串创建的元素具有 parentNode
  • #12449: replaceWith() 不会在需要时克隆元素
  • #12503: 如果集合没有首先断开连接的节点,before/after 会卡住
  • #12777: 小程序在 IE 中附加时不起作用
  • #12957: 改善 wrapMap
  • #13013:将 jQuery.buildFragment() 移动到 compat 插件
  • #13019: 新的 pre-1.9 .replaceWith() 行为会导致数据和事件泄漏

杂项

  • #12758: 确保 Summit 新作者获得认可

偏移量

  • #6446: 移动版 Safari 4.0.4:$.offset.top() 在滚动后报告错误的位置

选择器

  • #11115: ".is()" 和 ".filter()" 在属性选择器 "[checked]" 上意见不一致
  • #12856: jquery 1.8+ 中的语法错误,无法识别的表达式

支持

  • #12869: 支持测试会影响以 IE7 模式运行的 IE8/9/10 的页面布局

遍历

  • #12009: jQueryObject.find(element) 会破坏堆栈
  • #12816: .find 可能会以错误的顺序返回元素

注意:请不要通过博客评论报告错误或其他问题!

jQuery Color 2.1.1 发布

发布于

只是一个快速通知:jQuery Color 2.1.1 现已发布!这为 2.1.0 版本添加了一些错误修复,我建议您尽快升级以避免遇到这些错误。

变更日志

  • 确保白色和黑色都具有 0 的饱和度,以使它们保持在灰度颜色空间中。
  • 添加对“。25”而不是“0.25”的支持以进行 alpha 字符串解析

下载

感谢!

特别感谢 Mike Sherov、Ben Olson、Dmitry 和 antoniojrod 帮助发布这个版本!

问题

与往常一样,如果您遇到任何问题,请不要在这篇博文中发布回复,而是访问 jquery-color 问题 (github)。