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: 隐藏事件在切换时不触发
数据
延迟
- #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 元素时出现错误
偏移量
选择器
- #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)
很棒,但 .min.js 文件在哪里?
只试一次
https://code.jqueryjs.cn/jquery-1.8rc1.min.js
是的,说真的,在新的插件网站需要很长时间才能启动,并且错误跟踪器通常滞后(当它没有关闭时),有人应该真正处理这些东西(我的意思是高优先级)。
我喜欢 jQuery,但这并不能让你们看起来很认真 :(
而且不要在你不愿意阅读我们意见的情况下,给我们一个评论功能......
@Peter
我完全同意。自从 Resig 为了 Khan Academy 而减少了对 jQuery 的参与,并将新的领导权交给了 jQuery 基金会后,我发现了一些下降。
“基金会”和社区之间的沟通减少了,修复错误/问题的时间间隔也更长了。我说的不是从主要版本到下一个版本的时间,而是像 1.7.x 这样的点版本,它修复了该里程碑中存在的问题,有些人可能希望坚持使用这些版本,因为主要版本会导致现有代码和插件出现问题。
你认为一个女人如何在 6 个月内生出一个半的孩子,那可是超级子宫啊!