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 不会将 data 参数与 jQuery.ajaxSetup 合并
- #10944: $.ajax 并不总是返回一个实现 Promise 接口的对象
- #11013: 弃用使用 Deferred/Promise 与同步 $.ajax
- #11402: evalScript 函数在 IE 中出现错误 80020101
- #11743: jQuery 在 $.appendTo() 中的脚本标签 ajax 请求期间静默忽略错误
- #11778: 缓存的 XHR 请求仍应异步解析
- #12122: jQuery.ajax() 异步弃用使用 $.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: hide 事件在切换时不触发
数据
Deferred
- #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 上,animate 宽度从无效宽度开始
- #7157: 动画回调显示元素仍然是 ":animated"
- #8387: jQuery 1.5 hide/show 与 Webkit 浏览器中的内联和内联块元素存在闪烁问题
- #8627: .animate() 在 IE 中的 letterSpacing 上失败(在 1.5.1 中出现回归)
- #8892: 当 fadeIn() 和 jQuery.fx.off = true 时,回调在对象显示之前被调用
- #9217: 当动画元素在动画完成之前被移除时,IE8 中出现 javascript 错误
- #9505: 当在 Webkit 中混合使用百分比和像素时,animate() 问题
- #11635: 明确的 overflow:auto 在动画过程中被内联的 overflow:hidden 覆盖
- #11755: animate 及其别名不应使用 :hidden 选择器
- #11797: 与动画相关的全新事件
- #11854: 百分比动画跳到末尾
- #11971: 在 IE8 中,动画 background-position 失败
- #11999: 在固定 div 上的增量动画在 Chrome 中执行减法而不是加法。
- #12117: 动画到 0 高度或宽度时,overflow hidden 没有正确设置
- #12150: 当行显示和隐藏时,border-spacing 属性累积
事件
- #8545: IE 中事件泄漏
- #10067: 在 document.readyState === 'interactive' 上也触发 $.ready
- #10895: bindReady 中的 doScrollCheck ie hack 无缘无故地降低了 ie7 性能
- #11101: 弃用 trigger 方法中的“exclusive”事件选项
- #11315: delegate() 和 :first 在具有相同类的嵌套元素中存在问题
- #11328: 在 Windows 上,Ctrl 键不会将 event.metaKey 设置为 true
- #11382: Mouseenter 在禁用的输入元素上不触发
- #11500: 错误:“change”事件处理程序在 IE7 和 IE8 中手动触发时没有执行
- #11621: 在文档上触发事件不会冒泡到窗口
- #11718: 弃用 .data() 事件
- #11719: 弃用 .bind("ready") 事件
- #11731: 弃用“hover”伪事件
- #11733: 弃用 .load()、.unload() 和 .error() 方法
- #11764: 允许在禁用的元素上委派非原生事件
- #11786: 弃用 .toggle( handler, handler, … ) 签名
操作
- #8894: 在克隆() 之后调用的 appendTo() 及类似方法在 IE 中返回错误的 jQuery 集
- #10324: 克隆在 IE9 中不会复制 object 元素的 innerHTML
- #11231: Append、Prepend、After、Before 应该接受数组作为第一个参数
- #11338: .replaceWith() 和断开连接的节点的行为不一致。
- #11528: ie8 序列化错误与 .html() 也会影响 html5 标签
- #11566: 当节点是 DocumentFragment 时,node.append 等不工作
- #11617: 定义 $.parseHTML 方法来创建 HTML 片段
- #11809: .text(val) setter 中存在内存泄漏?
- #11898: 具有复杂 :not() 选择器的 prevAll() 以错误的顺序返回结果
- #12132: 当克隆没有 parentNode 的 object 元素时,IE10 错误
偏移
选择器
- #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: :nth-child() 在 :has() 内部被视为外部
- #10570: :text 选择器在 IE7 中遇到跨域 iframe 时会抛出错误
- #10697: Sizzle 重构
- #10799: [name="name"] 选择器结果不一致(也会破坏 .has)