jQuery 1.8 RC1 发布

发布时间 作者

jQuery 1.8RC1 发布了。没错,RC 指的是候选版本。好消息是这个版本比我预期的晚了几天才发布。这是个好消息,因为我们收到了一些非常有价值的最后一刻的错误报告,我们能够修复它们。非常感谢那些抽出时间用你们的代码试用 Beta 2 的人,尤其是那些发现并报告错误的人。

现在我知道你们中很多人会想,“哇,从来没有人让我发现错误。” 现在是你们成为 jQuery 社区英雄的机会了。在这个候选版本中,我们可能采取了一些工作特征,并插入了一些我们自己都不知道在哪里存在的隐蔽问题。请找到它们!请从这里获取代码

https://code.jqueryjs.cn/jquery-1.8rc1.js

在使用 jQuery 的地方试用这个候选版本代码,并通过错误跟踪器告知我们您发现的任何问题。请务必说明您正在针对 jQuery 1.8 RC1 进行测试,并请使用jsFiddle.net创建一个展示错误的测试用例,以便我们能够重现并调查。您可以在 jsFiddle 中使用“jQuery (edge)”框架选项,它代表最新的代码。

哦,我有没有提到这是一个候选版本?是的,我提到了。谁知道 jQuery 1.8.1 会不会发布?如果您在发布 jQuery 1.8 后发现错误,可能需要六个月才能修复。六个月的痛苦,仅仅因为您没有测试候选版本!您等待关键错误修复的时间里,一对半女性都可以生个孩子!为了您自己的利益,请试用一下吧!

jQuery 1.8rc1 更改日志

1.8rc1 版本的当前更改日志。

Ajax

  • #8205: JSONP 随机结果导致 IE8 中内存泄漏
  • #8653: jQuery.param 在查询字符串中输出“null”和“undefined”
  • #9399: 弃用 jqXHR.success 和 jqXHR.error
  • #10285: evalScript rcleanScript 替换在 IE8 中失败
  • #10524: jQuery.fn.load 未将数据参数与 jQuery.ajaxSetup 合并
  • #10944: $.ajax 并不总是返回实现 Promise 接口的对象
  • #11013: 弃用使用带有同步 $.ajax 的 Deferred/Promise
  • #11402: evalScript 函数在 IE 中以错误 80020101 失败
  • #11743: jQuery 在 $.appendTo() 中的脚本标签 ajax 请求期间静默忽略错误
  • #11778: 缓存的 XHR 请求仍应异步解析
  • #12122: jQuery.ajax() async 弃用与 $.Deferred 的使用

属性

  • #11153: jQuery 1.7 在 IE 8 中剥离回车符
  • #11212: Sizzle.getText 在 IE 中将不可分解空格转换为空格
  • #11547: XML DOM .removeAttr() 未删除大小写属性
  • #11962: 标准化空集的 getter 返回值。
  • #12127: 克隆在 IE10 中未正确复制选中状态

构建

  • #11767: 支持没有效果的自定义构建
  • #11789: 更新 README 以描述 grunt 构建系统
  • #11856: 将尺寸模块化
  • #11857: 将 css 模块化
  • #11865: 将偏移量模块化
  • #11965: 创建 deprecated.js 以包含尽可能多的已弃用内容

核心

  • #10657: 弃用 jQuery#size(),改用 jQuery#length
  • #11290: 选择器被解释为 HTML
  • #11470: 添加内置 readyP promise
  • #12018: $(document).ready() 在 IE8 中过早触发
  • #12026: 让 $(html, props) 使用任何 jQuery.fn 方法

Css

  • #10373: `document.defaultView` => `window`
  • #10413: 当隐藏父元素的 "box-sizing: border-box" 子元素时,width、innerWidth、innerHeight、outerWidth、outerHeight 不准确
  • #10679: CSS3 供应商前缀支持
  • #11004: 当 box-sizing 为 border-box 时,getWH 错误地删除填充和边框宽度
  • #11787: 删除 jQuery.curCSS
  • #12088: Webkit 现在为更多 getComputedStyle 属性返回百分比
  • #12148: 隐藏事件在切换时不触发

数据

  • #7579: jQuery.data() 截断从 data-xxx 属性获取的数字
  • #10589: 删除 $.fn.data("events")

延迟

  • #11010: 使 Deferred.then == Deferred.pipe 像 Promise/A 一样
  • #11011: 允许传统选项对象用于 $.Callbacks 标志
  • #11736: 删除 Deferred .isResolved() 和 .isRejected()
  • #11749: 当多个 Deferred 对象传递到 $.when() 时,保留上下文对象

尺寸

  • #6724: 移动版 Safari (iPhone) 中 $(window).height() 错误
  • #10877: 使 outerWidth/Height 成为 setter
  • #11293: 读取空 TD 的 width 或 outerWidth 会改变列宽值
  • #11604: 将 $(elem).width(-val) 从无操作切换为 $(elem).width(0)
  • #11724: $(document).height() 在 Firefox 12 中已更改

效果

  • #7109: 在 webkit 中,动画宽度从无效宽度开始
  • #7157: 动画回调显示元素仍然是 ":animated"
  • #8387: jQuery 1.5 隐藏/显示在 webkit 浏览器上内联和内联块元素时出现的闪烁问题
  • #8627: .animate() 在 IE 中的 letterSpacing 上失败(1.5.1 中的回归)
  • #8892: 当 jQuery.fx.off = true 时,回调在对象显示之前被调用
  • #9217: 当动画元素在动画完成之前被移除时,IE8 中出现 javascript 错误
  • #9505: 在 WebKit 中混合百分比和像素时的 animate() 问题
  • #11635: 显式 overflow:auto 在动画过程中被内联 overflow:hidden 覆盖
  • #11755: animate 及其别名不应使用 :hidden 选择器
  • #11797: 新的动画相关事件
  • #11854: 百分比动画跳到结尾
  • #11971: 在 IE8 中,动画背景位置失败
  • #11999: 在固定 div 上的增量动画在 Chrome 中执行减法而不是加法。
  • #12117: 动画到 0 高度或宽度时,overflow hidden 未正确设置
  • #12150: 当行显示和隐藏时,border-spacing 属性累积

事件

  • #8545: IE 中的事件泄漏
  • #10067: 也在 document.readyState === 'interactive' 上触发 $.ready
  • #10895: bindReady 中的 doScrollCheck ie hack 无端降低了 ie7 的性能
  • #11101: 弃用触发方法中的 "exclusive" 事件选项
  • #11315: delegate() 和 :first 在具有相同类名的嵌套元素中的问题
  • #11328: 在 Windows 上,Ctrl 键不会将 event.metaKey 设置为 true
  • #11382: Mouseenter 不会在禁用的输入元素上触发
  • #11500: 错误:“change” 事件处理程序在 IE7 和 IE8 上手动触发时未执行
  • #11621: 在 document 上触发事件不会冒泡到 window
  • #11718: 弃用 .data() 事件
  • #11719: 弃用 .bind("ready") 事件
  • #11731: 弃用 "hover" 伪事件
  • #11733: 弃用 .load()、.unload() 和 .error() 方法
  • #11764: 允许在禁用元素上委托非原生事件
  • #11786: 弃用 .toggle( handler, handler, … ) 签名

操作

  • #8894: 在 clone() 之后调用的 appendTo() 等方法在 IE 中返回了错误的 jQuery 集
  • #10324: 克隆在 IE9 中未复制 object 元素的 innerHTML
  • #11231: Append、Prepend、After、Before 应接受数组作为第一个参数
  • #11338: .replaceWith() 和断开连接的节点的行为不一致。
  • #11528: ie8 序列化错误,.html() 也会影响 html5 标签
  • #11566: 当 node 是 DocumentFragment 时,node.append 等不工作
  • #11617: 定义一个 $.parseHTML 方法来创建 HTML 片段
  • #11809: .text(val) setter 中的内存泄漏?
  • #11898: 具有复杂 :not() 选择器的 prevAll() 以错误的顺序返回结果
  • #12132: 在 IE10 中克隆没有 parentNode 的 object 元素时出现错误

偏移量

  • #10996: 简化 offset()
  • #11823: 删除 webkitConvertPointFromNodeToPage

选择器

  • #3778: 选择器匹配问题
  • #5568: 在 FF/IE 上,选择器在注释标签上的行为不同
  • #7596: 带有方括号 [] 的 xpath 选择器属性名称失败
  • #8473: 在 IE9rc 中,*[tabIndex] 选择器会选择所有没有 tabindex 属性的元素
  • #8906: .(prevAll('span:has(input,select,textarea)')
  • #9400: 弃用 :text, :radio, :checkbox 等选择器扩展
  • #9810: 重写位置选择器逻辑
  • #10003: 来自 #6963 的回归/向后兼容性问题
  • #10074: 将两个 [] 选择器与 :first 连接起来不起作用
  • #10499: :has() 内部的 :nth-child() 被视为在外部
  • #10570: 当页面上存在跨域 iframe 时,:text 选择器在 IE7 中抛出错误
  • #10697: Sizzle 改进
  • #10799: 使用 [name="name"] 选择器时结果不一致(也会破坏 .has)

关于“jQuery 1.8 RC1 发布”的 6 个想法

  1. 是的,说真的,在新的插件网站需要很长时间才能启动,并且错误跟踪器通常滞后(当它没有关闭时),有人应该真正处理这些东西(我的意思是高优先级)。

    我喜欢 jQuery,但这并不能让你们看起来很认真 :(

  2. David Levine 说:

    @Peter

    我完全同意。自从 Resig 为了 Khan Academy 而减少了对 jQuery 的参与,并将新的领导权交给了 jQuery 基金会后,我发现了一些下降。

    “基金会”和社区之间的沟通减少了,修复错误/问题的时间间隔也更长了。我说的不是从主要版本到下一个版本的时间,而是像 1.7.x 这样的点版本,它修复了该里程碑中存在的问题,有些人可能希望坚持使用这些版本,因为主要版本会导致现有代码和插件出现问题。