jQuery 1.6.4 发布

发布于 作者

jQuery 1.6.4 发布

这是一个 jQuery 的小版本更新。我们发布它来修复一些在 jQuery 1.6.3 发布期间出现的几个问题。

你可以从 jQuery CDN 获取代码

你可以通过将代码放到你的应用程序中并告知我们是否有任何不再工作的地方来帮助我们。请 提交一个错误,并确保提到你是在针对 jQuery 1.6.4 测试。

我们希望鼓励社区中的每个人尝试并 参与为 jQuery 核心做出贡献。我们设置了一个 完整页面 的信息,专门用于帮助你更深入地参与到团队中。团队就在这里,随时准备帮助你帮助我们!

jQuery 1.6.4 变更日志

当前 1.6.4 版本的变更日志。

数据

  • #10194: 使用单个连字符包围的字母作为数据属性名称无法通过驼峰命名法访问

事件

  • #10208: 在 IE8 中,$(“form”).live(“submit”, fn) 不会从 <button type=”submit”> 中触发

支持

  • #10197: jQuery 1.6.3 中的 mime 类型 application/xhtml+xml 的错误

jQuery 1.6.2 发布

发布于 作者

jQuery 1.6.2 发布

jQuery 1.6.2 现已发布!这是基于 jQuery 1.6 的第二个小版本更新,修复了大量的错误。

像往常一样,我们提供了两个版本的 jQuery,一个最小化版本,一个未压缩版本(用于调试或阅读)。

你可以随意将上面的 URL 直接包含到你的网站中,你将获得快速加载 jQuery 的全部性能优势。

你可以通过将代码放到你的应用程序中并告知我们是否有任何不再工作的地方来帮助我们。请 提交一个错误,并确保提到你是在针对 jQuery 1.6.2 测试。

我们希望鼓励社区中的每个人尝试并 参与为 jQuery 核心做出贡献。我们设置了一个 完整页面 的信息,专门用于帮助你更深入地参与到团队中。团队就在这里,随时准备帮助你帮助我们!

jQuery 1.6.2 变更日志

当前 1.6.2 版本的变更日志。

属性

  • #9286: 在表单上使用 live submit
  • #9298: 在 IE7 中 $(elem).attr(eventName) 工作不正常
  • #9329: IE7 中 attr(“title”) 的问题
  • #9362: .attr(“value”) 不适用于 meter 元素
  • #9468: 在 IE 6 中 $(‘form’).attr(‘class’) 始终返回未定义
  • #9499: removeClass 仅会移除第一个类实例

核心

  • #9301: 通过具有连字符键的对象设置 data() 会创建不可访问的数据。
  • #9368: jQuery.camelCase() 定义在 css.js 中,但被更广泛地使用
  • #9471: 在 iframe 中加载包含 html 页面的 jquey.1.6.1.min.js 时发现内存泄漏

CSS

  • #7557: outerWidth()
  • #9237: .css() 不适用于连字符属性的相对值

尺寸

  • #9300: outerWidth(true) 问题

效果

  • #9220: 动画回调在下一个队列函数执行后触发。
  • #9678: setInterval 被动画清除

事件

  • #9285: 自定义触发器

操作

  • #8950: (Chrome、Firefox)在创建 <input> 时,jQuery 中的第二个参数(事件为空)会抛出错误
  • #9370: jQuery 1.6 和 IE6 的兼容性问题

支持

  • #9239: 版本 1.6.0 中断 body 元素的背景行为
  • #9440: v1.6.1 在 IE8 中弄乱了布局

jQuery 1.6.2 RC 1 发布

发布于 作者

这是一个 jQuery 的预览版本。我们发布它以便每个人都可以开始在他们的应用程序中测试代码,确保没有重大问题。

你可以从 jQuery CDN 获取代码

你可以通过将代码放到你的应用程序中并告知我们是否有任何不再工作的地方来帮助我们。请 提交一个错误,并确保提到你是在针对 jQuery 1.6.2 RC 1 测试。

我们希望鼓励社区中的每个人尝试并 参与为 jQuery 核心做出贡献。我们设置了一个 完整页面 的信息,专门用于帮助你更深入地参与到团队中。团队就在这里,随时准备帮助你帮助我们!

jQuery 1.6.2 RC 1 变更日志

当前 1.6.2 RC 1 版本的变更日志。

属性

  • #9286: 在表单上使用 live submit
  • #9298: 在 IE7 中 $(elem).attr(eventName) 工作不正常
  • #9329: IE7 中 attr(“title”) 的问题
  • #9362: .attr(“value”) 不适用于 meter 元素
  • #9468: 在 IE 6 中 $(‘form’).attr(‘class’) 始终返回未定义
  • #9499: removeClass 仅会移除第一个类实例

核心

  • #9301: 通过具有连字符键的对象设置 data() 会创建不可访问的数据。
  • #9368: jQuery.camelCase() 定义在 css.js 中,但被更广泛地使用
  • #9471: 在 iframe 中加载包含 html 页面的 jquey.1.6.1.min.js 时发现内存泄漏

Css

  • #7557: outerWidth()
  • #9237: .css() 不适用于连字符属性的相对值

尺寸

  • #9300: outerWidth(true) 问题

效果

  • #9220: 动画回调在下一个队列函数执行后触发。

事件

  • #9285: 自定义触发器

操作

  • #8950: (Chrome、Firefox)在创建 <input> 时,jQuery 中的第二个参数(事件为空)会抛出错误
  • #9370: jQuery 1.6 和 IE6 的兼容性问题

支持

  • #9239: 版本 1.6.0 中断 body 元素的背景行为
  • #9440: v1.6.1 在 IE8 中弄乱了布局

jQuery 1.6.1 发布

发布于 作者

我们很高兴地宣布 jQuery 1.6 的第一个更新!

你可以从 jQuery CDN 获取代码

此外,你也可以直接从 Microsoft 和 Google 的 CDN 加载 URL

Microsoft CDN: http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.1.min.js
Google CDN: https://ajax.googleapis.ac.cn/ajax/libs/jquery/1.6.1/jquery.min.js

你可以通过将代码放到你的应用程序中并告知我们是否有任何不再工作的地方来帮助我们。请 提交一个错误,并确保提到你是在针对 jQuery 1.6.1 测试。

我们希望鼓励社区中的每个人尝试并 参与为 jQuery 核心做出贡献。我们设置了一个 完整页面 的信息,专门用于帮助你更深入地参与到团队中。团队就在这里,随时准备帮助你帮助我们!

从 1.5.2 升级到 1.6.1

随着新的 .prop() 方法的引入以及 .attr() 方法的更改,jQuery 1.6 引发了关于属性和属性之间的区别以及它们如何相互关联的讨论。它还带来了一些在 1.6.1 中已修复的向后兼容性问题。**从 1.5.2 升级到 1.6.1 时,你不必更改任何属性代码。**

以下是 jQuery 1.6 和 1.6.1 中对 Attributes 模块所做的更改的描述,以及 .attr() 方法和 .prop() 方法的*首选*用法。但是,如前所述,jQuery 1.6.1 将允许你在所有情况下像以前一样使用 .attr()

请注意,1.6 版本说明中描述的有关 .data() 方法的更改已得到解决,现在可以在 1.5.2 和 1.6.1 之间无缝工作。

发生了什么变化

对 Attributes 模块的更改消除了属性和属性之间的歧义,但引起了 jQuery 社区的困惑,因为 1.6 之前的 jQuery 版本都在一个方法 (.attr()) 中处理属性和属性。旧的 .attr() 方法存在许多错误,难以维护。

jQuery 1.6.1 包含了一些错误修复以及对 Attributes 模块的更新。

具体来说,在 1.6.1 中,诸如 checked、selected、readonly 和 disabled 之类的布尔属性将像以前在 1.6 之前的 jQuery 版本中那样对待。这意味着诸如

$(“:checkbox”).attr(“checked”, true);
$(“option”).attr(“selected”, true);
$(“input”).attr(“readonly”, true);
$(“input”).attr(“disabled”, true);

甚至

if ( $(“:checkbox”).attr(“checked”) ) { /* Do something */ }

之类的代码在 1.6.1 中无需更改即可按照预期工作。

为了使 jQuery 1.6 中对 .attr() 的更改更加清晰,以下是一些在 jQuery 之前的版本中工作但在 1.6 中应该切换为使用 .prop().attr() 使用情况的示例

.attr() 正确的 .prop() 用法
$(window).attr… $(window).prop…
$(document).attr… $(document).prop…
$(“:checkbox”).attr(“checked”, true); $(“:checkbox”).prop(“checked”, true);
$(“option”).attr(“selected”, true); $(“option”).prop(“selected”, true);

首先,在 jQuery 1.6 中,在 window 或 document 上使用 .attr() 方法不起作用,因为 window 和 document 不能具有属性。它们包含属性(例如 location 或 readyState),这些属性应该使用 .prop() 或简单的原生 JavaScript 进行操作。在 jQuery 1.6.1 中,.attr() 将为 window 和 document 委托给 .prop() 方法,而不是抛出错误。

接下来,checked、selected 和前面提到的其他布尔属性将得到特殊处理,因为这些属性与其对应的属性之间存在特殊关系。基本上,属性是你可以在 html 中看到的内容

<input type=”checkbox” checked=”checked”>

诸如 checked 之类的布尔属性仅设置默认值或*初始*值。对于复选框,checked 属性设置页面加载时是否应该选中复选框。

属性是浏览器用来跟踪**当前**值的内容。通常,属性会反映其对应的属性(如果存在)。对于布尔属性来说情况并非如此。当用户单击复选框或在选择元素中选择选项时,布尔属性会保持最新。相应的布尔属性不会。如上所述,它们仅用于浏览器来存储初始值。

$(“:checkbox”).get(0).checked = true;
// Is the same as $(":checkbox:first").prop(“checked”, true);

在 jQuery 1.6 中,使用

$(“:checkbox”).attr(“checked”, true);

设置 checked 不会选中复选框,因为需要设置的是属性,而你只是设置了初始值。

但是,在 jQuery 1.6 发布后,jQuery 团队意识到,设置浏览器只在页面加载时关注的东西并没有特别有用。因此,为了保持向后兼容性和 .attr() 方法的实用性,我们将在 jQuery 1.6.1 中继续能够使用 .attr() 方法获取和设置这些布尔属性。

最常用的布尔属性是**checked、selected、disabled和readOnly**,但以下列出了jQuery 1.6.1支持使用.attr()动态获取和设置的所有布尔属性/特性。

autofocus, autoplay, async, checked, controls, defer, disabled,
hidden, loop, multiple, open, readonly, required, scoped, selected

仍然建议使用.prop()来设置这些布尔属性/特性,但即使这些用例没有切换到使用.prop()方法,您的代码在jQuery 1.6.1中仍然可以正常工作。

以下是某些属性和特性的列表,以及在获取或设置它们时应该使用哪种方法。这是首选用法,但.attr()方法在所有属性情况下都将起作用。

请注意,下面还列出了一些DOM元素特性,但它们仅适用于新的.prop()方法。

属性/特性 .attr() .prop()
accesskey
align
async
autofocus
checked
class
contenteditable
defaultValue
draggable
href
id
label
location *
multiple
nodeName
nodeType
readOnly
rel
selected
selectedIndex
src
style
tabindex
tagName
title
type
width **

* 例如,使用window.location
** 如果需要超过.width()

对于获取/设置value,不应该使用.attr().prop()。请改用.val()方法(尽管使用 .attr(“value”, “somevalue”) 将继续有效,就像在 1.6 之前一样)。

首选用法摘要

对于布尔属性/特性以及在 html 中不存在的特性(例如 window.location),应该使用.prop()方法。所有其他属性(您可以在 html 中看到的属性)都可以并且应该继续使用.attr()方法进行操作。

jQuery 1.6.1 变更日志

1.6.1 版本的当前变更日志。

属性

  • #9071: $(‘<option></option>’).val(‘myValue’)不再设置值
  • #9079: .attr(“selected”)在 1.6 中返回无用值
  • #9089: 1.6 atrr() 在 IE7,8 中不一致
  • #9094: jQuery 1.6 的问题:无法取消选中复选框
  • #9103: .attr(‘foo’, true) 未设置相关 DOM 属性
  • #9123: 生成输入元素时 attr 方法的奇怪行为。
  • #9129: jQuery 不支持枚举属性,例如 contenteditable
  • #9191: 单选按钮上的 attr checked 错误

数据

  • #9124: $.data 在某些情况下的更改不合理
  • #9126: jquery 在使用 strict 时中断

Deferred

  • #9104: 在管道过滤器函数中返回 null 或 undefined 会导致异常

效果

  • #9074: 无法同时动画位置和不透明度
  • #9100: hide() 回调的顺序已更改

事件

  • #9069: 当鼠标悬停在元素的子元素上时,使用 live 或 delegate 时会触发 mouseleave

操作

  • #9072: jQuery 1.6 导致 IE 6 崩溃
  • #9221: AJAX 中的 JavaScript 无法在 IE 中加载 - 错误 80020101

Queue

  • #9147: promise 中的变量 tmp 隐式声明?

Selector

  • #7341: IE 中的 .add() 速度慢
  • #9096: jQuery 1.6 中的选择器或查找错误
  • #9154: :reset 伪选择器已损坏

支持

  • #8763: 未处理的异常:document.defaultView.getComputedStyle(div, null) 为 null (FF,隐藏的 iframe)
  • #9109: 即使不在怪异模式下,support.boxModel 在 IE6 中也为 false

jQuery 1.6.1 RC 1 发布

发布日期: 作者:

我们即将发布 jQuery 1.6 的第一个更新,我们很高兴宣布第一个候选版本发布!如果没有重大错误,这应该就是我们最终用于 jQuery 1.6.1 的代码(这将在本周内发布)。

你可以从 jQuery CDN 获取代码

您可以通过将该代码放入您现有的应用程序中并告知我们是否有任何内容不再有效来帮助我们。请提交错误,并确保提及您正在针对 jQuery 1.6.1 RC 1 进行测试。

我们希望鼓励社区中的每个人尝试并 参与为 jQuery 核心做出贡献。我们设置了一个 完整页面 的信息,专门用于帮助你更深入地参与到团队中。团队就在这里,随时准备帮助你帮助我们!

从 1.5.2 升级到 1.6.1

随着新的.prop()方法的引入以及.attr()方法的更改,jQuery 1.6 引发了关于属性和特性之间的区别以及它们如何相互关联的讨论。它还带来了一些向后兼容性问题,这些问题已在 1.6.1 中修复。从 1.5.2 更新到 1.6.1 时,您无需更改任何代码。

以下是 jQuery 1.6 和 1.6.1 中对 Attributes 模块所做的更改的描述,以及 .attr() 方法和 .prop() 方法的*首选*用法。但是,如前所述,jQuery 1.6.1 将允许你在所有情况下像以前一样使用 .attr()

发生了什么变化

对 Attributes 模块的更改消除了属性和属性之间的歧义,但引起了 jQuery 社区的困惑,因为 1.6 之前的 jQuery 版本都在一个方法 (.attr()) 中处理属性和属性。旧的 .attr() 方法存在许多错误,难以维护。

jQuery 1.6.1 包含了一些错误修复以及对 Attributes 模块的更新。

具体来说,在 1.6.1 中,诸如 checked、selected、readonly 和 disabled 之类的布尔属性将像以前在 1.6 之前的 jQuery 版本中那样对待。这意味着诸如

$(“:checkbox”).attr(“checked”, true);
$(“option”).attr(“selected”, true);
$(“input”).attr(“readonly”, true);
$(“input”).attr(“disabled”, true);

甚至

if ( $(“:checkbox”).attr(“checked”) ) { /* Do something */ }

之类的代码在 1.6.1 中无需更改即可按照预期工作。

为了使 jQuery 1.6 中对 .attr() 的更改更加清晰,以下是一些在 jQuery 之前的版本中工作但在 1.6 中应该切换为使用 .prop().attr() 使用情况的示例

.attr() 正确的 .prop() 用法
$(window).attr… $(window).prop…
$(document).attr… $(document).prop…
$(“:checkbox”).attr(“checked”, true); $(“:checkbox”).prop(“checked”, true);
$(“option”).attr(“selected”, true); $(“option”).prop(“selected”, true);

首先,在 jQuery 1.6 中,在 window 或 document 上使用 .attr() 方法不起作用,因为 window 和 document 不能具有属性。它们包含属性(例如 location 或 readyState),这些属性应该使用 .prop() 或简单的原生 JavaScript 进行操作。在 jQuery 1.6.1 中,.attr() 将为 window 和 document 委托给 .prop() 方法,而不是抛出错误。

接下来,checked、selected 和前面提到的其他布尔属性将得到特殊处理,因为这些属性与其对应的属性之间存在特殊关系。基本上,属性是你可以在 html 中看到的内容

<input type=”checkbox” checked=”checked”>

诸如 checked 之类的布尔属性仅设置默认值或*初始*值。对于复选框,checked 属性设置页面加载时是否应该选中复选框。

属性是浏览器用来跟踪**当前**值的内容。通常,属性会反映其对应的属性(如果存在)。对于布尔属性来说情况并非如此。当用户单击复选框或在选择元素中选择选项时,布尔属性会保持最新。相应的布尔属性不会。如上所述,它们仅用于浏览器来存储初始值。

$(“:checkbox”).get(0).checked = true;
// Is the same as $(":checkbox:first").prop(“checked”, true);

在 jQuery 1.6 中,使用

$(“:checkbox”).attr(“checked”, true);

设置 checked 不会选中复选框,因为需要设置的是属性,而你只是设置了初始值。

但是,在 jQuery 1.6 发布后,jQuery 团队意识到,设置浏览器只在页面加载时关注的东西并没有特别有用。因此,为了保持向后兼容性和 .attr() 方法的实用性,我们将在 jQuery 1.6.1 中继续能够使用 .attr() 方法获取和设置这些布尔属性。

最常用的布尔属性是**checked、selected、disabled和readOnly**,但以下列出了jQuery 1.6.1支持使用.attr()动态获取和设置的所有布尔属性/特性。

autofocus, autoplay, async, checked, controls, defer, disabled,
hidden, loop, multiple, open, readonly, required, scoped, selected

仍然建议使用.prop()来设置这些布尔属性/特性,但即使这些用例没有切换到使用.prop()方法,您的代码在jQuery 1.6.1中仍然可以正常工作。

以下是某些属性和特性的列表,以及在获取或设置它们时应该使用哪种方法。这是首选用法,但.attr()方法在所有情况下都将起作用。

属性/特性 .attr() .prop()
accesskey
align
async
autofocus
checked
class
contenteditable
draggable
href
id
label
location ( 例如 window.location )
multiple
readOnly
rel
selected
src
tabindex
title
type
width ( 如果需要超过.width() )

对于获取/设置value,不应该使用.attr().prop()。请改用.val()方法(尽管使用 .attr(“value”, “somevalue”) 将继续有效,就像在 1.6 之前一样)。

首选用法摘要

对于布尔属性/特性以及在 html 中不存在的特性(例如 window.location),应该使用.prop()方法。所有其他属性(您可以在 html 中看到的属性)都可以并且应该继续使用.attr()方法进行操作。

jQuery 1.6.1 RC 1 变更日志

1.6.1 RC 1 版本的当前变更日志。

属性

  • #9079: .attr(“selected”)在 1.6 中返回无用值
  • #9089: 1.6 atrr() 在 IE7,8 中不一致
  • #9094: jQuery 1.6 的问题:无法取消选中复选框
  • #9103: .attr(‘foo’, true) 未设置相关 DOM 属性
  • #9123: 生成输入元素时 attr 方法的奇怪行为。
  • #9129: jQuery 不支持枚举属性,例如 contenteditable
  • #9191: 单选按钮上的 attr checked 错误

数据

  • #9124: $.data 在某些情况下的更改不合理
  • #9126: jquery 在使用 strict 时中断

Deferred

  • #9104: 在管道过滤器函数中返回 null 或 undefined 会导致异常

效果

  • #9074: 无法同时动画位置和不透明度
  • #9100: hide() 回调的顺序已更改

事件

  • #9069: 当鼠标悬停在元素的子元素上时,使用 live 或 delegate 时会触发 mouseleave

操作

  • #9072: jQuery 1.6 导致 IE 6 崩溃

Queue

  • #9147: promise 中的变量 tmp 隐式声明?

Selector

  • #7341: IE 中的 .add() 速度慢
  • #9096: jQuery 1.6 中的选择器或查找错误
  • #9154: :reset 伪选择器已损坏

支持

  • #8763: 未处理的异常:document.defaultView.getComputedStyle(div, null) 为 null (FF,隐藏的 iframe)
  • #9109: 即使不在怪异模式下,support.boxModel 在 IE6 中也为 false

jQuery 1.6 发布

发布日期: 作者:

jQuery 1.6 现已发布,可供使用!我们对这次发布感到非常自豪,它包括对 Attribute 模块的重大重写以及一些性能改进。

请借此机会感谢jQuery 团队jQuery 错误分类团队的成员,感谢他们帮助我们发布了这个版本。

你可以从 jQuery CDN 获取代码

您还可以从其他 CDN 获取代码

我们希望鼓励社区中的每个人尝试并 参与为 jQuery 核心做出贡献。我们设置了一个 完整页面 的信息,专门用于帮助你更深入地参与到团队中。团队就在这里,随时准备帮助你帮助我们!

事实上,我们已经开始着手开发 jQuery 1.7。我们欢迎您为 jQuery 1.7 提交功能建议。如果您有任何建议,请使用上述表格提交。

jQuery 1.6 变更日志

此版本中发生的所有 API 更改都可以在 jQuery API 文档中找到
https://api.jqueryjs.cn/category/version/1.6/

重大变更

在大多数版本中,我们尝试与现有代码保持兼容。但是,在某些情况下,jQuery 1.6 可能需要更改现有代码

data- 属性的案例映射

jQuery 1.5 在.data()方法中引入了 一项功能,可以自动导入元素上设置的任何data-属性,并使用 JSON 语义将其转换为 JavaScript 值。在 jQuery 1.6 中,我们更新了此功能以匹配W3C HTML5 规范, 涉及对包含连字符的 data 属性进行驼峰式命名。例如,在 jQuery 1.5.2 中,data-max-value="15"的属性将创建一个数据对象 { max-value: 15 },但从 jQuery 1.6 开始,它将设置 { maxValue: 15 }

.prop().removeProp().attr()

在 1.6 版本中,我们已将 DOM 属性和 DOM 特性的处理拆分为单独的方法。新的.prop()方法设置或获取 DOM 元素上的特性,而.removeProp()则删除特性。在过去,jQuery 没有对特性和属性进行明确的区分。通常,DOM 属性表示从文档中检索到的 DOM 信息的状态,例如标记<input type="text" value="abc">中的value属性。DOM 特性表示文档的动态状态;例如,如果用户在上面的输入元素中点击并输入def,则.prop("value")abcdef,但.attr("value")仍然为abc

在大多数情况下,浏览器将属性值视为特性的初始值,但布尔属性(如checkeddisabled)具有特殊的语义。

例如,考虑标记<input type="checkbox" checked>checked属性的存在意味着 DOM .checked特性为true,即使属性没有值。在上面的代码中,checked属性值为一个空字符串(如果未指定属性,则为undefined),但checked特性值为true

在 jQuery 1.6 之前,.attr("checked")返回布尔特性值(true),但从 jQuery 1.6 开始,它返回属性的实际值(一个空字符串),当用户点击复选框以更改其状态时,该值不会改变。

有几种方法可以检查复选框的当前选中状态。最佳且性能最优的方法是直接使用 DOM 特性,例如,在事件处理程序中使用this.checked,其中this引用被点击的元素。在使用 jQuery 1.6 或更高版本的代码中,新方法$(this).prop("checked")检索与this.checked相同的值,并且速度相对较快。最后,表达式$(this).is(":checked")适用于所有版本的 jQuery。

Ajax

已修复的错误

  • #6481: revert $.param 应将空数组/对象视为空字符串
  • #7881: 使其与 XHR 2 兼容
  • #8417: 在发布 AJAX 时,如果数据包含“??”,则将其格式化为 jQuery<timestamp>?
  • #8744: .ajax() jsonp 请求在超时时未正确处理
  • #8884: jqXHR 破坏了自定义标头字段的名称

属性

性能改进

jQuery 1.6 .attr("value")

jQuery 1.6 .attr("name", "value")

jQuery 1.6 .val() (get)

测试和数据

.prop().removeProp().attr()

(请参阅上面“重大变更”部分中对更改内容的描述。)

布尔属性

在 jQuery 1.6 中,布尔属性(如 selected、checked 等)现在可以通过将truefalse传递给.attr()来切换,以添加或删除它们。例如

$("#checkbox").attr("checked", true); // Checks it
$("#checkbox").attr("checked", false); // Unchecks it

.attr().val()的可扩展性

为了更容易为特定属性(jQuery.attrHooks)或表单输入值(jQuery.valHooks)添加特殊处理,添加了两个新的挂钩。

例如

jQuery.attrHooks.selected = {
	set: function( elem, value ) {
		if ( value === false ) {
			jQuery.removeAttr(elem, “selected”);
			return value;
		}
	}
};

这两个挂钩的行为与 jQuery 的内置 CSS 挂钩非常相似(允许您为属性(或值)指定获取或设置方法),以处理这些特定情况。

已修复的错误

  • #1591: IE “无效参数” $(‘table’).attr(‘不存在’)
  • #3116: .attr 不适用于 SVG IDLs
  • #3786: removeAttr 应该使用 jQuery.props
  • #4283: .attr(‘checked’) & XHTML 1.1 Strict
  • #4464: IE 无法获取分离的 IMG 元素的 width 属性
  • #4978: jQuery.prop 缺少 cellpadding?
  • #5413: 标签 “img” 的 width/height 属性为零 (IE)
  • #6562: 使用 .attr() 设置 ‘target’ 属性,节点具有 ‘target’ 的 ID
  • #6708: Opera 对 usemap 属性值的结果不一致
  • #6823: 使 .val(value) 在常见用例中更快
  • #7472: $(‘form’).attr(‘id’) 返回 DOM 元素
  • #7485: has [attribute] 选择器和 attr() 方法之间不一致
  • #7709: 从非 Chrome Firefox/3.5.15 中访问属性 ‘nodeType’ 权限被拒绝
  • #7996: Safari $(‘script’).attr(‘event’); 错误
  • #8117: .removeAttr 不适用于 select 元素的 size 属性
  • #8150: Webkit 和 Firefox 中的 removeAttr 问题
  • #8255: 对 list 属性的支持
  • #8418: 在 IE 7 中使用 attr() 方法设置 name 参数
  • #8457: attrHooks
  • #8570: .val 方法在 IE9 中为动态创建的单选按钮返回 “on”
  • #8699: .attr() 在缺少属性时返回 -1 而不是 undefined
  • #8772: 使用 .attr() 设置 input 类型 ‘range’ 在 IE9 中会导致脚本错误
  • #8997: 新属性 “form” (HTML5) 不受支持,.attr(‘form’) 工作不正常
  • #9037: $(‘blah’).attr(‘onclick’) 在 Firefox 中返回事件

构建

已修复的错误

  • #8854: 压缩器流程中的错误

核心

jQuery.map( 对象 )

现在可以使用 jQuery.map 方法映射 JavaScript 对象的属性。例如

var counts = { first: 1, second: 2 };
	
counts = jQuery.map( counts, function( value ) {
	return value++;
});

已修复的错误

  • #2616: 更好的 jQuery.map
  • #4366: $.each 在 IE 中使用 document.styleSheets 失败
  • #6690: 存储对 location 和 navigator 对象的引用
  • #7049: 使 jQuery.noConflict() 可以在任何时候调用
  • #7783: 修复 $.proxy 以像 (并使用) Function.prototype.bind 一样工作
  • #7862: jQuery.globalEval(): Firefox 中远程脚本延迟执行
  • #7990: 使用 jQuery 构造函数在 Firefox 中创建大型 HTML 块时,脚本空间配额耗尽错误
  • #8893: jQuery.proxy( context, name ) 在 1.6b1 中的错误
  • #8984: jQuery 无法正确解析字符串中的 html!
  • #8993: jQuery.map( emptyNodeList ) 枚举属性。

CSS

相对 CSS

我们移植了 .animate() 方法的功能,使您能够使用相对值更新 CSS 属性。现在可以使用 “+=” 或 “-=” 前缀 CSS 值来相对更新属性,相对于当前值。

// Move an item 10px over
$("#item").css("left", "+=10px");

已修复的错误

  • #6135: jQuery 尝试访问文本标签的 .style 属性
  • #7345: 支持 $().css() 的相对值
  • #7730: offset.js: setOffset 使用 parseInt 解析可能包含浮点数的 css 值
  • #8401: 对 opacity cssHooks 的小改进
  • #8402: jQuery.cssProps 在除 IE6/7/8 之外的所有浏览器中都无用
  • #8403: jQuery 在分配不透明度时会清除其他 IE 过滤器

数据

性能改进

通过提高事件触发的性能,.data() 的性能得到了大幅提升。jQuery 的 .data() 方法会触发 getData 和 setData 事件,这些事件允许插件具有更高的可扩展性,改进它们的触发方式可以让 .data() 变得更快。

jQuery 1.6 .data() (get and set)

测试和数据

已修复的错误

  • #7328: data-foo-bar 应该可以通过 .data( ‘fooBar’ ) 和 .data( ‘foo-bar’ ) 访问吗?

Deferreds

deferred.always()

在 1.5 中,当您想要在 deferred 被解析或拒绝时执行完全相同的操作时,您必须使用一个命名函数并将其传递给 “then” 两次

function callback() {
    // the deferred has been resolved or rejected
}

defer.then( callback, callback );

使用 “always”,您可以直接进行操作

defer.always(function() {
    // the deferred has been resolved or rejected
});

deferred.pipe()

链接异步任务可能很繁琐,尤其是当您想为整个链返回一个 Promise 时

function chainedAjax( url ) {
    return $.Deferred(function( defer ) {
        $.ajax( url ).then( function( url2 ) {
            $.ajax( url2 ).then( defer.resolve, defer.reject )
        }, defer.reject ).promise();
    });
}

使用 “pipe”,一切都更易读和自然

function chainedAjax( url ) {
    return $.ajax( url ).pipe(function( url2 ) {
        return $.ajax( url2 );
    });
}

它还可以用来过滤解析和/或拒绝值

var request = $.ajax( url ).pipe(function( data ) {
   return data.value;
});

request.done(function( value ) {
    // we get the value field of the original response
});

效果

同步动画

在 jQuery 中,您可以同时运行多个动画 (甚至在同一个元素上同时运行多个动画,对不同的属性进行动画处理)。在 1.6 中,我们引入了一种增强功能,确保所有动画同步到同一个计时器间隔。这在以前可能造成问题,因为动画可能会变得稍微不同步 (即使只有几毫秒),从而导致动画略微 “偏离”。

更流畅的动画

此外,jQuery 现在使用浏览器提供的新的 requestAnimationFrame 方法,使我们的动画更加流畅。我们可以使用此功能来避免调用计时器,而是依靠浏览器来提供最佳的动画体验。

.promise()

就像之前的 $.ajax() 一样,$.animate() 现在也支持 “deferred”。jQuery 对象现在可以返回一个 Promise,用于观察集合中所有动画何时完成

$(".elements").fadeOut();

$.when( $(".elements") ).done(function( elements ) {
    // all elements faded out
});

已修复的错误

  • #7917: .animate() 在与大量元素一起使用时,没有 “同步”
  • #7934: $.fn.animate 实施 deferreds
  • #7974: 清理 effects.js 以提高性能并减少文件大小
  • #8099: SPAN 元素在 show() 上变成块级元素
  • #8101: 在可用时,使用 requestAnimationFrame 而不是 setInterval 来进行动画

事件

性能改进

(正如在讨论 .data() 性能时提到的,事件触发的性能已经得到了改进。)

jQuery.holdReady()

jQuery 提供了一种机制来延迟 ready 事件的执行 (主要用于插件作者)。该机制的 API 在 1.6 中得到了改进,最终实现了一个简单、单一的方法

jQuery.holdReady( true ); // Pause execution of ready event
// later...
jQuery.holdReady( false ); // Resume execution

已修复的错误

  • #5884: 当嵌套时,live mouseenter/mouseleave 事件不会按预期触发
  • #6514: 如果通过 live 绑定,则 Mouseenter 和 mouseleave 事件无法触发
  • #6913: 命名空间事件冒泡错误
  • #6993: .bind() 和 .one() 不允许将函数作为数据
  • #7071: 在 IE 上访问 VML 元素的 ‘type’ 属性失败
  • #7883: .delegate (和 .live) 应该像 .bind 一样接受 false 作为 fn 参数
  • #8018: 对 frameElement 的不安全访问会导致跨域 (i)frame 中出现错误
  • #8272: 纯 JS 对象事件处理程序中的异常被 jQuery 吞没
  • #8712: 自定义事件不会冒泡到 window
  • #8732: 对 IE9 focusin/focusout 的功能检测错误
  • #8753: jQuery 1.6: jQuery.Event 构造函数支持设置属性
  • #8755: 在 IE6、7、8 中,绑定到 beforeunload 会在页面卸载时抛出错误
  • #8777: jQuery 1.6: undelegate() 接受自定义命名空间事件
  • #8788: 重新组织 jQuery.event.trigger 以使用循环而不是递归
  • #8790: 优化非附加事件,例如数据事件
  • #8803: jQuery.holdReady() 方法

操作

已修复的错误

  • #1954: val() 在 IE 中为按钮元素返回 innerHTML
  • #6180: jQuery.clean 不应该触碰类型不是 text/javascript 的脚本标签
  • #7623: 在 replaceWith 中抛出异常
  • #7885: 当当前偏移量为浮点数 (在 FireFox 中可能) 时,jQuery .offset 工作不正常。
  • #8060: 将 checked 设置为 true 的断开连接的复选框,在附加到 DOM 后不会保留。
  • #8500: 单选按钮和复选框在 IE 中被包装后会恢复到默认 (HTML) 状态

杂项

已修复的错误

  • #8203: 删除不需要的 “someVar = null;”
  • #8851: 在源代码和测试中用双引号包装字符串
  • #8882: 测试:更新 QUnit 使用,将 id=main 替换为 id=qunit-fixture

偏移量

已修复的错误

  • #7931: 当在空 jQuery 对象上调用时,scrollTop 和 scrollLeft 设置器返回 null

Selector

:focus 选择器

在 jQuery 1.6 中,我们现在确保 :focus 选择器在所有浏览器中都能正常工作。您可以使用此选择器查找页面上当前获得焦点的元素 (例如表单输入)。

$("input:focus").addClass("active");
  • #3685: 选择器对包含名为 “name” 的元素的表单失败
  • #4321: $(“#”) 返回 undefined
  • #8105: :focus 选择器过滤器

支持

已修复的错误

  • #9028: 如果使用 body 背景图片,则 IE8 在加载 1.6rc1 时会崩溃

遍历

find()closest()is() 现在都接受 DOM 元素和 jQuery 对象

在 jQuery 1.6 中,我们确保 find()closest()is() 都可以接受 DOM 元素和 jQuery 对象作为参数。这为您提供了根据传入的元素过滤元素集的替代方法。

// Only returns .test elements if they're inside of a div
$("div").find( $(".test") )

已修复的错误

  • #2773: $.fn.is 和 $.fn.not 应该接受 DOMelements 和 jQuery 集合
  • #5712: 允许 jQuery.fn.is 接受函数
  • #6912: $().add(selectElement) 添加了选项子元素而不是其他元素
  • #7369: $(‘<div>ff</div>’).closest(‘[attr]’); 在所有浏览器中都引发异常
  • #8609: .find(” “) 的结果是 undefined

jQuery 1.6 RC 1 发布

发布日期 作者

这是一个 jQuery 的预览版本。我们发布它以便每个人都可以开始在他们的应用程序中测试代码,确保没有重大问题。

你可以从 jQuery CDN 获取代码

您可以通过将该代码放入您现有的应用程序中并告知我们是否有任何内容不再起作用来帮助我们。请提交错误报告,并确保您提到了您正在针对 jQuery 1.6 RC 1 进行测试。

我们希望鼓励社区中的每个人尝试并 参与为 jQuery 核心做出贡献。我们设置了一个 完整页面 的信息,专门用于帮助你更深入地参与到团队中。团队就在这里,随时准备帮助你帮助我们!

jQuery 1.6 RC 1 更改日志

1.6 RC 1 版本的当前更改日志。

Ajax

  • #6481: revert $.param 应将空数组/对象视为空字符串
  • #7881: 使其与 XHR 2 兼容
  • #8417: 在发布 AJAX 时,如果数据包含“??”,则将其格式化为 jQuery<timestamp>?
  • #8744: .ajax() jsonp 请求在超时时未正确处理
  • #8884: jqXHR 破坏了自定义标头字段的名称

属性

  • #3786: removeAttr 应该使用 jQuery.props
  • #4283: .attr(‘checked’) & XHTML 1.1 Strict
  • #4464: IE 无法获取分离的 IMG 元素的 width 属性
  • #4978: jQuery.prop 缺少 cellpadding?
  • #5413: 标签 “img” 的 width/height 属性为零 (IE)
  • #6562: 使用 .attr() 设置 ‘target’ 属性,节点具有 ‘target’ 的 ID
  • #6708: Opera 对 usemap 属性值的结果不一致
  • #6823: 使 .val(value) 在常见用例中更快
  • #7472: $(‘form’).attr(‘id’) 返回 DOM 元素
  • #7485: has [attribute] 选择器和 attr() 方法之间不一致
  • #7709: 从非 Chrome Firefox/3.5.15 中访问属性 ‘nodeType’ 权限被拒绝
  • #7996: Safari $(‘script’).attr(‘event’); 错误
  • #8117: .removeAttr 不适用于 select 元素的 size 属性
  • #8150: Webkit 和 Firefox 中的 removeAttr 问题
  • #8255: 对 list 属性的支持
  • #8418: 在 IE 7 中使用 attr() 方法设置 name 参数
  • #8457: attrHooks
  • #8570: .val 方法在 IE9 中为动态创建的单选按钮返回 “on”
  • #8699: .attr() 在缺少属性时返回 -1 而不是 undefined
  • #8772: 使用 .attr() 设置 input 类型 ‘range’ 在 IE9 中会导致脚本错误

构建

  • #8854: 压缩器流程中的错误

核心

  • #2616: 更好的 jQuery.map
  • #3116: .attr 不适用于 SVG IDLs
  • #4366: $.each 在 IE 中使用 document.styleSheets 失败
  • #6690: 存储对 location 和 navigator 对象的引用
  • #7049: 使 jQuery.noConflict() 可以在任何时候调用
  • #7783: 修复 $.proxy 以像 (并使用) Function.prototype.bind 一样工作
  • #7862: jQuery.globalEval(): Firefox 中远程脚本延迟执行
  • #7990: 使用 jQuery 构造函数在 Firefox 中创建大型 HTML 块时,脚本空间配额耗尽错误
  • #8882: 测试:更新 QUnit 使用,将 id=main 替换为 id=qunit-fixture
  • #8893: jQuery.proxy( context, name ) 在 1.6b1 中的错误

Css

  • #6135: jQuery 尝试访问文本标签的 .style 属性
  • #7345: 支持 $().css() 的相对值
  • #7730: offset.js: setOffset 使用 parseInt 解析可能包含浮点数的 css 值
  • #8401: 对 opacity cssHooks 的小改进
  • #8402: jQuery.cssProps 在除 IE6/7/8 之外的所有浏览器中都无用
  • #8403: jQuery 在分配不透明度时会清除其他 IE 过滤器

数据

  • #7328: data-foo-bar 应该可以通过 .data( ‘fooBar’ ) 和 .data( ‘foo-bar’ ) 访问吗?

效果

  • #7917: .animate() 在与大量元素一起使用时,没有 “同步”
  • #7934: $.fn.animate 实施 deferreds
  • #7974: 清理 effects.js 以提高性能并减少文件大小
  • #8099: SPAN 元素在 show() 上变成块级元素
  • #8101: 在可用时,使用 requestAnimationFrame 而不是 setInterval 来进行动画

事件

  • #5884: 当嵌套时,live mouseenter/mouseleave 事件不会按预期触发
  • #6514: 如果通过 live 绑定,则 Mouseenter 和 mouseleave 事件无法触发
  • #6913: 命名空间事件冒泡错误
  • #6993: .bind() 和 .one() 不允许将函数作为数据
  • #7071: 在 IE 上访问 VML 元素的 ‘type’ 属性失败
  • #7883: .delegate (和 .live) 应该像 .bind 一样接受 false 作为 fn 参数
  • #8018: 对 frameElement 的不安全访问会导致跨域 (i)frame 中出现错误
  • #8272: 纯 JS 对象事件处理程序中的异常被 jQuery 吞没
  • #8712: 自定义事件不会冒泡到 window
  • #8732: 对 IE9 focusin/focusout 的功能检测错误
  • #8753: jQuery 1.6: jQuery.Event 构造函数支持设置属性
  • #8755: 在 IE6、7、8 中,绑定到 beforeunload 会在页面卸载时抛出错误
  • #8777: jQuery 1.6: undelegate() 接受自定义命名空间事件
  • #8788: 重新组织 jQuery.event.trigger 以使用循环而不是递归
  • #8790: 优化非附加事件,例如数据事件
  • #8803: jQuery.holdReady() 方法

操作

  • #1954: val() 在 IE 中为按钮元素返回 innerHTML
  • #6180: jQuery.clean 不应该触碰类型不是 text/javascript 的脚本标签
  • #7623: 在 replaceWith 中抛出异常
  • #7885: 当当前偏移量为浮点数 (在 FireFox 中可能) 时,jQuery .offset 工作不正常。
  • #8060: 将 checked 设置为 true 的断开连接的复选框,在附加到 DOM 后不会保留。
  • #8500: 单选按钮和复选框在 IE 中被包装后会恢复到默认 (HTML) 状态

杂项

  • #8203: 删除不需要的 “someVar = null;”
  • #8851: 在源代码和测试中用双引号包装字符串

偏移量

  • #7931: 当在空 jQuery 对象上调用时,scrollTop 和 scrollLeft 设置器返回 null

Selector

  • #3685: 选择器对包含名为 “name” 的元素的表单失败
  • #4321: $(“#”) 返回 undefined
  • #8105: :focus 选择器过滤器

遍历

  • #2773: $.fn.is 和 $.fn.not 应该接受 DOMelements 和 jQuery 集合
  • #5712: 允许 jQuery.fn.is 接受函数
  • #6912: $().add(selectElement) 添加了选项子元素而不是其他元素
  • #7369: $(‘<div>ff</div>’).closest(‘[attr]’); 在所有浏览器中都引发异常
  • #8609: .find(” “) 的结果是 undefined

jQuery 1.6 Beta 1 发布

发布日期 作者

jQuery 1.6 即将完成!我们希望发布一个测试版,让大家可以在自己的应用中开始测试代码,确保没有重大问题。

jQuery 1.6 Beta 1

你可以从 jQuery CDN 获取代码

您可以将代码放入现有应用程序中,并告知我们任何不再起作用的地方。请提交错误,并务必提及您是在 jQuery 1.6 Beta 1 中进行测试。

我们希望鼓励社区中的每个人尝试并 参与为 jQuery 核心做出贡献。我们设置了一个 完整页面 的信息,专门用于帮助你更深入地参与到团队中。团队就在这里,随时准备帮助你帮助我们!

jQuery 1.6 Beta 1 变更日志

1.6 版本的当前变更日志。

  • #6782 优化了 innerHTML 的正则表达式,允许更多 html 片段使用更快的 方法。
  • #7328 获取 data- 属性时,根据 W3C HTML5 规范将嵌入的连字符大写。
  • #4146 修复了输入元素宽度/高度的不一致问题。
  • #7345 添加了对 .css() 中显式/相对字符串值的 支持。
  • #7783 修复了 $.proxy 使其与 Function.prototype.bind 一样工作 (并使用它)
  • #8753 允许在 jQuery.Event 对象上显式定义特殊属性。
  • #7587 如果 window.JSON.parse 可用,则绕过 $.parseJSON 上的正则表达式过滤器,并使用本机抛出的异常。
  • #8150 修复了在 IE6/7 中删除宽度和高度属性时,设置为 “” 实际上会设置为 0 而不是 auto 的问题。
  • #6562 修复了如果 DOM 节点的 ID 为 ‘target’,并且尝试设置 target 会失败的问题。
  • #8744 确保脚本传输中止方法即使存在 readyState 也实际上会删除脚本标签。
  • #8712 当自定义事件触发时,将它们冒泡到窗口。
  • #8635 修复了 Firefox 中的未捕获异常,并删除了不必要的“手动”垃圾收集。
  • #8568 修复了 live 事件回调在 event liveHandler 函数中可能出现顺序错误的问题。
  • #8417 禁用 $.ajax() JSON POST 的 JSONP 替换。
  • #8099 修复了 SPAN 元素在 show() 上变为块级元素的问题。
  • #8593 修复了当通过 jQuery 附加单独的处理程序时,DOM 0 事件处理程序被调用两次的问题
  • #8402 修复了实现 window.getComputedStyle 的浏览器完全忽略 jQuery.css() 中的“fixed 属性”的问题。这使得 jQuery.cssProps 的实现更通用。
  • #8401#8403 .修复了 jQuery 在设置透明度时会“强迫”其他 IE 过滤器的问题
  • #7071 修正了在 IE 上访问 VML 元素的 ‘type’ 属性失败的问题
  • #4321 修复了 $(“#”) 在 Opera 9.6 上返回 “undefined” 和异常的问题。
  • #7883 就像 .bind 一样,.delegate (和 .live) 现在接受 false 作为 function(){return false;} 的快捷方式。
  • #2773 $.fn.is 和 $.fn.not 现在接受 DOM 元素和 jQuery 集合。
  • #8777 undelegate() 现在接受自定义命名空间事件。
  • #3116 .attr() 现在也适用于 SVG 规范的只读接口。
  • #8732 更改了对 focusin 事件支持的特性检测,因此 IE9 不会出现重复的事件。
  • #7369 现在可以使用 .closest() 对带有属性的断开连接的节点进行操作。
  • #4366 修复了在 IE 中将 document.styleSheets 传递给 $.each 时失败的问题。
  • #7931 修正了当对空的 jQuery 对象调用 $.fn.scrollTop 和 $.fn.scrollLeft 设置器时,两者都返回 null 的问题。
  • #8101 现在,当可用时,我们在动画中使用 requestAnimationFrame 代替 setInterval
  • #8018 修复了对 frameElement 的不安全访问会导致跨域 (i)frame 中出现错误的问题
  • #6180 jQuery.clean 不再影响或修改类型不为 text/javascript 的脚本标签
  • #3685 修正了之前在选择具有名为“name”的元素的表单时出现的故障
  • #8790 对于触发事件不是本机事件 (即不应具有内联处理程序) 的情况,我们应该立即退出以优化目的
  • #8814 修复了 core.js 中的一个小问题,我们不需要在 inArray 回退定义中检查 indexOf。
  • #7472#3113 修复了如果表单中的属性名称与属性类型 (例如,id、name 等) 相同,则会遇到冲突的问题
  • #7054 确保事件处理程序中的 DOM 元素引用被 cleanData 删除,以避免 IE6/7/8 内存泄漏。
  • #8418 修复了 attr(“name”,”value”) 在 IE 7 中无法设置 name 属性值的问题
  • #7996 修复了 Safari 5.0.3 中尝试对脚本标签使用 jQuery 的 .attr() 来访问名为“event”的属性时出现的错误。
  • #8772 修复了 IE9 无法优雅地处理设置不支持的输入类型 (例如 ‘range’) 的问题。
  • #4283 作为 .attr() 重写的一部分,false 会删除布尔属性,例如 checked。
  • #8699 .attr() 不再对缺少的属性返回 -1,而是返回 undefined。
  • #6837 修正了 IE 无法在表单重置后返回选择中默认/第一个项目的正确值,而是返回空字符串的问题
  • #4464 修复了 IE 无法获取分离的 IMG 元素的 width 属性的错误
  • #7485 修复了选择器没有返回所有具有该属性的元素的不一致问题,即使通过 attr() 方法检查时,它返回一个值。

jQuery 1.5.2 发布

发布日期 作者

jQuery 1.5.2 现已发布!这是 jQuery 1.5 之上的第二个次要版本,修复了许多错误。

我们感谢以下为该版本提供补丁的贡献者:azatoth、dmethvin、gnarf37、jaubourg、jboesch、jeresig、jessthrysoee、mathiasbynens、murz、rdworth、rwldrn 和 timmywil。

我们尤其感谢我们的错误分类团队,他们帮助缩小了该版本需要修复的一些重要问题。

下载

像往常一样,我们提供了两个版本的 jQuery,一个最小化版本,一个未压缩版本(用于调试或阅读)。

你可以随意将上面的 URL 直接包含到你的网站中,你将获得快速加载 jQuery 的全部性能优势。

此外,你也可以直接从 Microsoft 和 Google 的 CDN 加载 URL

Microsoft CDN: http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.2.min.js
Google CDN: https://ajax.googleapis.ac.cn/ajax/libs/jquery/1.5.2/jquery.min.js

jQuery 1.5.2 变更日志

由于这是一个错误修复版本,因此没有新的功能要报告。

已关闭的工单

以下列出了所有已关闭的错误和工单

  • #6158 修复了 replaceWith 在不存在的元素上抛出错误的问题。
  • #7340 我们现在使用单个捕获处理程序来模拟非 IE 浏览器上的 focusin/focusout 事件冒泡。允许本机 DOM 方法触发除当前活动事件之外的其他事件,并将这些事件回传到 jQuery。
  • #8353 恢复。在 resolveWith 中添加了一个 catch 块,以便 finally 块在 IE7 和 IE6 中执行。修复了 #8438 - 在 Google Chrome 中调试时,完整的函数堆栈不可见的问题。
  • #8380 使 $(‘:text’) 匹配 <input>,因为 ‘type=text’ 是隐含的默认值。
  • #8421 确保 resolveWith 只能用一个参数调用。
  • #8423 绝不自动为跨域请求设置 X-Requested-With 标头。修复了所有跨域 ajax 请求都被预检,并且需要额外的附加选项的问题。
  • #8456 修复了 trigger(‘mouseover’) 不再触发 mouseenter 的问题。我们在爬入父级之前确保父级不为 null,因此 mouseover 事件会触发 mouseenter。
  • #8509 使 URL 正则表达式不那么过分,并确保它识别不包含符合层次结构的 URL 方案 (根据 http://www.ietf.org/rfc/rfc2718.txt 的第 2.1.2 节)。此外,将 about: 和 adobe air 的 app: 和 app-storage: 添加到本地协议列表中,并在 document.location 格式错误的情况下提供故障转移。
  • #8536 在 GitHub 上的 jQuery 存储库中引入了子模块。
  • #8381 修复了 .is(“div”) 在 IE 9 中对断开连接的节点进行操作的问题。
  • #8316 修复了 WebKit 中固定元素的 .offset() 设置器。
  • #3333 修复了 WebKit 中不正确的 .css(“marginRight”)。
  • #8692 修复了 arguments 对象有时会在 $.when 方法之外出现 undefined 值的问题。
  • #8346 修复了 jQuery.camelCase() 和 IE9 前缀的兼容性问题。
  • #8203 删除了一些不必要的元素置空操作,这些操作是为了进行 IE 内存清理而进行的。
  • #8519 阻止核心 makefile 在代码中没有任何实际更改的情况下应用最小化。
  • #8587 修复了 jQuery-git.js cron 作业,以确保它定期更新。
  • #8635 修正了 Firefox 3.6 中 getComputedStyle() 的一个问题,该问题导致未捕获的异常。

jQuery 1.5.2 RC 1 发布

发布日期 作者

jQuery 1.5 的第二个更新进展顺利 - 我们很高兴地宣布其第一个发布候选版本的发布!如果没有任何重大错误,这应该是我们最终为 jQuery 1.5.2 发布的代码 (将于 3 月 31 日发布)。

jQuery 1.5.2 发布候选版本 1

你可以从 jQuery CDN 获取代码

您可以通过将该代码放入现有的应用程序中并告知我们任何不再起作用的地方来帮助我们。请提交错误,并确保提及您正在针对 jQuery 1.5.2 RC 1 进行测试。

我们希望鼓励社区中的每个人尝试并 参与为 jQuery 核心做出贡献。我们设置了一个 完整页面 的信息,专门用于帮助你更深入地参与到团队中。团队就在这里,随时准备帮助你帮助我们!

jQuery 1.5.2 RC 1 更改日志

1.5.2 版本的当前更改日志。

  • #6158 针对不存在的元素修复了 replaceWith 抛出错误。
  • #7340 我们现在使用单个捕获处理程序来模拟非 IE 浏览器上的 focusin/focusout 事件冒泡。允许本机 DOM 方法触发除当前活动事件之外的其他事件,并将这些事件回传到 jQuery。
  • #8353 恢复。在 resolveWith 中添加了一个 catch 块,以便 finally 块在 IE7 和 IE6 中执行。修复了 #8438 - 在 Google Chrome 中调试时,完整的函数堆栈不可见的问题。
  • #8380 使 $(‘:text’) 匹配 <input>,因为 ‘type=text’ 是隐含的默认值。
  • #8421 确保 resolveWith 只能用一个参数调用。
  • #8423 绝不自动为跨域请求设置 X-Requested-With 标头。修复了所有跨域 ajax 请求都被预检,并且需要额外的附加选项的问题。
  • #8456 修复了 trigger(‘mouseover’) 不再触发 mouseenter 的问题。我们在爬入父级之前确保父级不为 null,因此 mouseover 事件会触发 mouseenter。
  • #8509 使 URL 正则表达式不那么过分,并确保它识别不包含符合层次结构的 URL 方案(根据 #http://www.ietf.org/rfc/rfc2718.txt 的第 2.1.2 节)。还将 about: 和 adobe air 的 app: 和 app-storage: 添加到本地协议列表,并在 document.location 格式错误的情况下提供故障转移。
  • #8536 在 GitHub 上的 jQuery 存储库中引入了子模块。
  • #8381 修复了 .is(“div”) 在 IE 9 中对断开连接的节点进行操作的问题。
  • #8316 修复了 WebKit 中固定元素的 .offset() 设置器。
  • #3333 修复了 WebKit 中不正确的 .css(“marginRight”)。