jQuery 1.5.1 现已发布!这是 jQuery 1.5 的第一个小版本,包含了一些错误修复。
我们要感谢以下为本版本提供补丁的贡献者:antonkovalyov、csnover、danheberden、davidmurdoch、dmethvin、gnarf37、jaubourg、jeresig、jitter、jrburke、lrbabe、mathiasbynens、rwldrn、SlexAxton 和 voxwerk。
我们特别感谢我们的错误分类团队,他们在缩小本版本需要的一些重要修复方面提供了帮助。
下载
和往常一样,我们提供两个版本的 jQuery,一个是最小化的,一个是不压缩的(用于调试或阅读)。
- jQuery 最小化 (29kb Gzipped)
- jQuery 标准 (212kb)
您可以随意将上面的 URL 直接包含到您的网站中,您将获得快速加载 jQuery 的全部性能优势。
此外,您也可以直接从 Microsoft 和 Google 的 CDN 加载 URL。
Microsoft CDN: http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.1.min.js
Google CDN: https://ajax.googleapis.ac.cn/ajax/libs/jquery/1.5.1/jquery.min.js
1.6 路线图会议
jQuery 核心开发团队现在正在接受针对 jQuery 1.6 的更改提案。我们目前计划在 4 月下旬/5 月初发布 jQuery 1.6,并将在 3 月 7 日美国东部时间中午举行会议讨论提交的提案(会议将在 irc.freenode.net 上的 #jquery-meeting 举行)。
请在 3 月 7 日会议之前通过 以下表格 提交您的提案。
jQuery 1.5.1 变更日志

API 文档: jQuery 1.5.1 API 文档
由于这是一个错误修复版本,因此没有新的功能要报告。唯一的更改如下
jQuery 现在支持 Internet Explorer 9 作为顶级浏览器。所有已知的错误都已修复或已报告给 IE 团队,以便在最终版本中解决。
三个新选项已添加到 jQuery.ajax()
- isLocal: 允许将当前环境识别为“本地”(例如文件系统),即使 jQuery 默认情况下不将其识别为本地也是如此。以下协议目前被识别为本地:file、*-extension 和 widget。如果 isLocal 设置需要修改,建议在 $.ajaxSetup() 方法中执行一次修改。
- mimeType: 用于覆盖 XHR 类型的 MIME 类型。
- xhrFields 用于在本地 XHR 对象上设置 fieldName-fieldValue 对的映射。例如,您可以使用它在需要时将 withCredentials 设置为 true 以进行跨域请求。
已关闭的工单
以下是已关闭的所有错误和工单的完整列表
- #2551 确保 .val() 在 IE 中 form.reset() 之后也能正常工作
- #4537 确保 .clone(true) 正确克隆命名空间事件
- #4966 不要在对无单位属性进行动画处理时向其添加“px”
- #6774 确保我们只在可用时访问 parentNode。修复了在选项标签分离后抛出 elem.parentNode 错误的问题。
- #6911 阻止对禁用元素的操作,包括触发和通过 .live() 绑定
- #7531 再次修复 IE9RC。增强了 ajaxSetup,使其能够接受可选的 target 选项,在这种情况下,target 将被更新而不是 ajaxSettings。这样,可以列出不应该进行深度扩展的字段,并在一个地方进行处理。jQuery.ajax 现在使用带有 target 的 ajaxSetup 来创建其内部设置对象
- #7568 对 #5862 的后续修复。具有 length 属性的对象不能被 jQuery.param 正确序列化
- #7653 更改正则表达式以检测本地协议,以便它可以接受任何以 -extension 结尾的协议
- #7668 Sizzle 和 jQuery QUnit 测试不同步
- #7912 此更改使 .cur() 更加 .cssHooks 友好。如果 .cur() 不是数字、类似数字的值或需要回退到 0 的值,它现在将返回 .css() 未修改的值。
- #7922 修复了在 IE 中,live(‘submit’) 先绑定时,live(‘click’) 不触发的错误
- #7945 使 jQuery.param() 正确序列化具有名为 jquery 的属性的普通对象
- #8033 jQuery 1.4.4+ 无法在具有旧的 Prototype (<= 1.5) 或 Current Prototype + Scriptaculous 的 IE 页面上加载
- #8039 使用 HTML5 输入类型的选择器在 IE6/7 中无法正常工作
- #8052 更新 jQuery.support.noCloneEvent 测试,使其在 IE9 中正常运行
- #8095 正确处理需要绕过浏览器缓存但服务器端逻辑仍然提供正确的 304 响应的情况。已添加单元测试
- #8098 在可用时使用快速的 document.head
- #8099 始终根据元素的预期默认显示恢复到正确的显示值
- #8107 修复 $.ajax 多个方法签名的参数处理,并添加测试用例
- #8108 对使用 JSON.stringify 序列化时,jQuery 元数据暴露在普通 JS 对象上的临时修复,以避免破坏兼容性的更改。对此的正确修复将在 1.6 中发布
- #8115 将代码中的所有 jXHR 引用重命名为 jqXHR(与文档中所做的一样)
- #8123 .clone() 的默认行为是不克隆任何事件
- #8125 当 location.protocol 为“file:”时,状态设置为 200 用于状态为 0 的请求。已添加 test/localfile.html 来控制它是否正常工作
- #8129 修复了在 IE8 中克隆多个选定选项的问题
- #8135 确保在尝试访问网络错误发生时 XMLHttpRequest 属性时,Firefox 抛出的任何异常都被捕获并报告为错误。已添加 test/networkerror.html 来测试此行为
- #8138 仅在加载时访问一次 document.location,如果失败(在 document.domain 已经设置时,IE 中会抛出异常),我们将使用 A 元素的 href 代替
- #8145 已添加 readyWait 测试
- #8146 引入了 xhrFields 选项,它是一个用于在本地 xhr 上设置 fieldName/fieldValue 的映射。可以用来在需要时将 withCredentials 设置为 true 以进行跨域请求
- #8152 对“chrome-extension:”协议应用与“file:”相同的特殊情况(需要测试)。重新组织并修复了 xhr 传输中对 HTTP 状态代码的特殊情况的处理
- #8177 XHR 传输现在将 304 Not Modified 响应视为 200 OK,前提是没有提供条件请求头(根据 XMLHttpRequest 规范)
- #8193 修复了预过滤器中的中止问题。即使全局选项设置为 true,也不会在那种情况下触发全局事件。已添加单元测试
- #8198 删除不必要的“script.type = text/javascript;”
- #8200 取消公开 $.support._scriptEval,因为它不再需要。使用私有变量代替
- #8209 确保将鼠标悬停在 Chrome“内部 div”上不会触发 mouseleave
- #8219 引入了 mimeType 选项,用于在转换中覆盖 content-type 标头(以及在可能的情况下,在本地 xhr 中)。在 jqXHR 对象上添加了配套的 overrideMimeType 方法(它只是设置了选项)
- #8220 从标签名称过滤器中删除反斜杠
- #8245 Ajax 现在确保标头名称是大写的,这样不符合规范的 xhr 实现就不会覆盖它们
- #8250 ajax 在 opera 10 小部件中无法正常工作
- #8277 将 data 设置为 undefined 而不是 null,如果它没有在 ajax 帮助程序中提供,以便它不会阻止在 ajaxSettings 中设置的 data 被使用。
- #8297 确保正确处理具有空值的响应标头,并且不会阻止对整个响应标头字符串的正确解析。
- #8353 在 resolveWith 中添加了一个 catch 块,以便 finally 块在 IE7 和 IE6 中执行。
- #8365 确保 IE 9 仍然克隆属性。