jQuery 1.7.2 发布

发布于 作者

jQuery 1.7.2 很好!候选版本发布得很顺利,所以我们只做了一个小改动 (一个小的改动),并于今天发布给您。您现在可以在 jQuery CDN 上获取最新的代码,Google 和 Microsoft CDN 很快就会发布。

注意:如果您使用的是 jQuery Mobile,请仅将 jQuery 1.7.2 与 jQuery Mobile 1.1 一起使用。对于之前的 jQuery Mobile 版本,请使用 jQuery 核心 1.7.1 或更早版本。

您可以使用 错误跟踪器 报告错误;请务必在 jsFiddle 上创建一个测试用例,以便我们能够轻松地找出问题。如果您不确定它是否是一个错误,请在我们的 论坛StackOverflow 上提问。请不要使用下面的博客评论来报告错误。

和往常一样,如果没有许多人的辛勤工作,这个版本是不可能发布的。首先是 jQuery 核心团队:gnarf、jaubourg、mikesherov、rwldrn 和 timmywil。jQuery UI、Mobile 和基础设施团队的支持也非常感谢,特别是 danheberden 与 Trac 的英勇斗争。

社区成员如 adebree、caii、cmc3cn、KYSergey、mathiasbynens、miskith、MrMamen、Orkel、pasky、SineSwiper、tavelli 和 vlazar 通过报告、验证和修复错误做出了贡献。特别感谢 gibson042 和 sindresorhus,他们为使 1.7.2 成为一个很棒的版本付出了努力。不要让这些人独享乐趣!如果您想为网络上最流行的 JavaScript 库做出贡献,请加入 IRC 上的 #jquery-dev 或 我们论坛 上的“开发 jQuery 核心”部分,并打个招呼!

非常感谢 Louis-Rémi Babé,他在发布前 30 分钟提交了一个 修复负边距动画回归的补丁

jQuery 1.7.2 更改日志

以下是 1.7.2 版本的更改日志。

Ajax

  • #4624:默认 ajaxSettings.contentType 中的字符集
  • #10978:jQuery.param() 应该允许非原生构造对象作为属性值
  • #11264:evalScript() 使用 ajaxSetup() 设置的默认值
  • #11426:在 IE 中请求 JPG 图像时,jQuery.ajax() 始终失败

属性

  • #5571:在将 undefined 传递给 jQuery 中的任何 setter 时,允许链式操作
  • #10828:attr(“coords”)在 IE7 中返回 undefined
  • #10870:$.removeAttr(“selected”)的行为不正确
  • #11316:首先考虑通过元素类型查找 valHooks,然后通过 nodeName 查找,而不是相反

构建

  • #10692:配置 jshint 选项以更准确地匹配样式指南
  • #10693:在单元测试中将“在 iframe 中测试某项内容”的代码泛化
  • #10901:如果测试器从 file:// 运行或没有 PHP,则让单元测试失败
  • #10902:能够在单元测试中测试 jQuery 的构建版本
  • #10931:单元测试不应该需要互联网访问

核心

  • #10466:jQuery.param() 将包装的基元误认为深层对象

CSS

  • #10639:outerWidth(true) 和 css('margin')在 Webkit 中返回 % 而不是 px
  • #10754:让 jQuery.swap 返回回调的返回值,而不仅仅是执行它
  • #10782:计算宽度不正确
  • #10796:IE7 中 $(‘#el’).css.(‘background-position’) 的错误
  • #10858:css.js 正则表达式不完整
  • #11119:curCSS 函数只需要 2 个参数

数据

  • #11309:十六进制格式的 data-* 属性解析错误

Deferred

  • #11306:在 $.Callbacks 对象上调用 .disable() 或 .lock() 会破坏其 fired() 状态

尺寸

  • #3838:$(document).height() 在 IE6 中不正确

效果

  • #8498:动画钩子
  • #10006:当对文档片段调用时,方法 show 的行为不符合预期
  • #10848:动画切换在某些原子边缘情况下会丢失状态跟踪
  • #11415:在 CSS 值非法的情况下,静默忽略它们
  • #11469:动画 (.animate) 中的负边距

事件

  • #8165:.live('click',handler)在 Chrome 中在具有子元素的禁用按钮上触发
  • #10819:消除“this.on.call(this,”
  • #10878:$(“select”).live(“change”,function(){ …在 jQuery 1.7 中的 IE8 中已损坏
  • #10961:在 IE6-9 中使用 jQuery 1.7.1 时,XRegExp 中的错误
  • #10970:.on() 选择器参数不适用于 :not(:first) 选择器
  • #10984:无法关闭() 自定义事件 ($.event.special)
  • #11021:悬停黑客会破坏名为“悬停”的命名空间
  • #11076:.clone(true) 会丢失委托过滤器
  • #11130:jQuery.fn.on:使用 null 选择器绑定映射会忽略数据
  • #11145:$(document).on() 不适用于 name=”disabled”

操作

  • #9427:将 undefined 传递给 .text() 不会触发 setter
  • #10753:将 evalScript 函数内联到 manipulation.js 中,因为它只使用一次
  • #10864:文档片段上的 text() 方法始终返回空字符串
  • #11055:更新 HTML5 Shim 元素列表以支持最新的 html5shiv
  • #11217:WebKit 中的追加问题
  • #11291:使用 HTML5 nodeName 克隆 XMLDoc 在 IE 上会中断
  • #11323:类型为“text/ecmascript”的脚本标签会泄漏到 DOM 中
  • #11356:safeFragment 内存泄漏

其他

  • #10952:.fired() 在 Callbacks 对象上标记为“once”时不起作用
  • #11257:如果缺少 PHP,则测试套件中源文件路径错误

队列

  • #10967:.promise() 不会将方法附加到目标

支持

  • #7986:如果页面有 DIV-element CSS,则 $.support.boxModel 中的错误
  • #11048:支持测试会影响 IE6-9 中定位元素的布局
  • #11337:$.support.reliableMarginRight 中的错误

遍历

  • #11370:$(‘
    ’).siblings() 会抛出异常

37 个关于“jQuery 1.7.2 发布”的评论

  1. 关于 jQuery UI 更新有任何消息吗?最后一个稳定版本在触摸屏设备上仍然存在一些问题,但我已经看到了开发版本,其中包含可拖动元素等功能。他们很长时间没有在主要的 UI 网站上更新新闻,所以我想我可以在这里问问,是否是一群人同时负责这两个项目。错误跟踪器似乎也暂时关闭了。

  2. 在 1.7.2 中,var id = $(this).attr(“id”).split(“_”)[0];在 Firefox 和 Chrome 中会报错,但在 IE 中可以正常工作。相同的代码在 1.7.1 中可以正常工作。

  3. 很棒的工作!非常感谢你们!!!我爱jQuery!

    我真的很佩服你们还在为IE6继续努力,IE6在大多数现代网站上已经被禁止或忽略。我记得曾经花了几天的时间优化网站以适应IE6。代码被搞得乱七八糟,浪费了时间。放弃修复和针对IE6开发jQuery实际上不是更有意义吗?

    干杯!
    Simon

  4. 谢谢大家。我们都感谢你们为此付出的努力,每次发布新版本都是一件好事。恭喜你们推出了一款很棒的产品,它让每个人的编程都变得更容易。

  5. 我们什么时候能看到更新的NuGet包?我查看了历史记录,似乎jQuery发布到NuGet的时间并不一致。

    我想提出两个请求
    1. 创建一个流程,确保NuGet包在每次新版本发布后尽快更新。
    2. 在NuGet上发布beta版和候选发布版(使用-Pre参数安装最新的预发布版)。这将帮助开发人员更轻松地获取jQuery的预发布版。

  6. 我们在Windows上使用CRM 2011。使用数据类型JSON通过异步AJAX JQuery调用从服务器获取数据。在XP和IE8下没有问题。在Windows 7和IE9下存在问题。我相信使用了json2.js和jQuery 1.64。这是这些版本中已知的问题吗?

  7. Robert Wildling 说:

    关于“不要在这里的评论中发布错误”:我认为实际上应该在这里发布在新版本中观察到的错误。由此产生的“概述”对我们来说很有帮助,可以让我们决定更新是否可能破坏现有的解决方案。(当然,错误报告页面仍然需要提供信息)。因此,感谢所有抽出时间在这里发布他们体验的人!——仅仅是我的两分钱…

  8. Loque 说:

    @Robert Wildling

    评论≠(讨论||错误追踪)。如果你真的想听到有关问题的信息,那么将所有错误列在错误追踪器中,这样就可以追踪它们,包括围绕它们的讨论。如果你需要有关特定错误的帮助,或者某些东西导致了问题,那么你更有可能在论坛或错误追踪器中获得更好的帮助。在查看新版本的实现时,没有比错误追踪部分更好的去处。

    在这里随意报告错误意味着你会错过围绕它们的讨论,尤其是(我猜),许多被报告的“错误”实际上不是错误。

  9. Loque 说:

    说到这里,错误追踪器本身非常慢/有bug,我希望它能尽快得到改进!

  10. 我一直从1.5开始使用jQuery,在我的网站上。最近我在开发中升级到了1.7.2,以为我可以使用最新的功能让网站运行得更好,结果网站开始崩溃。

    分析后发现“attr”函数是问题的根源。
    如果我切换回1.7.1 jQuery,这段代码
    $(this).attr(“for”) => 会给我“divMain”
    如果我切换到1.7.2,同样的代码会显示为[object]。

    我下载了1.7.1和1.7.2的开发版本,发现问题出在jquery 1.7.2.js文件中的第2227行“return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 );”。我发现,对于代码“$(this).attr(‘for’)”,arguments.length=3,它再次查看arguments.length,无论最后一个参数是否为undefined,因此,如果你创建一个将所有参数传递给.attr的函数,它将会失败。

    可能当其他js代码覆盖attr函数时,它可能会一直发送多于一个的参数,然后代码后面的:return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 ); 就会执行不正确,它被当作可链式调用。其他参数将为undefined。在jQuery版本1.6.2中没有问题。我不知道它应该让其他人更改他们的代码,还是应该更改jQuery核心。

    所以我想说的是,"在我的项目中,没有对文件进行任何代码更改,如果我切换到新版本的jQuery(1.7.2),网站就会崩溃。所以有一些非常小的问题。”

  11. Confused 说:

    既然博客明确说明不要在评论区报告错误,那为什么人们还在评论区报告错误呢?它甚至还写了“请”。

  12. Ashutosh 说:

    我正在使用 jQuery JavaScript 库 v1.4.4。如果我升级到最新版本 1.7.2,会影响我的网站吗?

  13. 对于从 jQuery 1.4.4 升级到 1.7.2 的用户,请关注以下链接,确保您的代码库中解决了所有向后不兼容的更改。
    1.44 到 1.5 的变更日志
    https://blog.jqueryjs.cn/2011/01/31/jquery-15-released/

    1.6 的变更日志
    https://blog.jqueryjs.cn/2011/05/03/jquery-16-released/

    1.7 的变更日志
    https://blog.jqueryjs.cn/2011/11/03/jquery-1-7-released/

    1.7.2 的变更日志
    https://blog.jqueryjs.cn/2012/03/21/jquery-1-7-2-released/

  14. 如果我使用 jquery,我的 ajax 请求和响应(包含 XML)在所有浏览器中都无法正常工作。谁能帮我一下?

  15. 我在当前版本 1.8.2 中遇到了一些问题 - 一些旧代码无法按预期工作。我想我应该看看 Ashwin 几篇帖子之前发布的链接。一些人告诉我,这个版本 (1.7.2) 是最稳定的版本。但也许他们也不知道最新版本的重大变化……

  16. 感谢 jQuery 团队的快速更新。距离 1.7.2 更新只有大约 6 个月,您的团队在如此短的时间内就发布了 1.8.2 版本,这真是太棒了。但它经常会造成一个问题,就是更新太快,跟不上节奏。那么,有没有一个页面包含所有 jQuery 版本的历史变更日志,以便我们能够在一个地方更好地跟踪它们呢?

  17. 我也遇到了错误问题,而且错误跟踪器对我来说也不起作用。我们应该能够在评论中发布这个问题,以便您能够帮助我们。