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:弃用在同步 $.ajax 中使用 Deferred/Promise
- #11402: evalScript 函数在 IE 中出现错误 80020101
- #11743: jQuery 在 $.appendTo() 中对 script 标签 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: width、innerWidth、innerHeight、outerWidth、outerHeight 对于 box-sizing: border-box 的隐藏父元素的子元素不准确
- #10679: CSS3 供应商前缀支持
- #11004: getWH 在 box-sizing 为 border-box 时错误地删除了填充和边框宽度
- #11787: 删除 jQuery.curCSS
- #12088:WebKit 现在返回更多 getComputedStyle 属性的百分比
- #12148:切换时 hide 事件无法触发
数据
Deferred
- #11010: 使 Deferred.then == Deferred.pipe 类似于 Promise/A
- #11011: 允许 $.Callbacks 标志的传统选项对象
- #11736: 删除 Deferred .isResolved() 和 .isRejected()
- #11749: 在 $.when() 中传递多个 Deferred 对象时保留上下文对象
Dimensions
- #6724: 在移动 Safari (iPhone) 中 $(window).height() 错误
- #10877: 使 outerWidth/Height 成为 setter
- #11293: 读取空 TD 的宽度或 outerWidth 会改变列的宽度值
- #11604: 将 $(elem).width(-val) 从无操作更改为 $(elem).width(0)
- #11724: Firefox 12 中 $(document).height() 已更改
Effects
- #7109: animate width 在 WebKit 中以无效宽度开始
- #7157: 动画回调显示元素仍然为“:animated”
- #8387: 使用 WebKit 中的内联和内联块元素时,hide/show 问题导致闪烁
- #8627: .animate() 在 IE 中对 letterSpacing 失败(1.5.1 中的回归)
- #8892: 在 clone() 之后调用 appendTo() 和类似方法返回错误的 jQuery 集合
- #9217:在动画完成前移除元素时,IE8 中出现 javascript 错误
- #9505: 在 WebKit 中混合百分比和像素时出现 animate() 问题
- #11635: 动画期间显式 overflow:auto 被内联 overflow:hidden 覆盖
- #11755: animate 及其别名不应使用 :hidden 选择器
- #11797:新的动画相关事件
- #11854: 百分比动画跳转到结束
- #11971:在 IE8 中动画 background-position 失败
- #11999:在 Chrome 中对固定 div 进行增量动画时,执行减法而不是加法。
- #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:鼠标进入事件在禁用的输入元素上无法触发
- #11500: 错误:手动触发 IE7 和 IE8 中的“change”事件处理程序未执行
- #11621: 在 document 上触发事件不会冒泡到 window
- #11718: 弃用 .data() 事件
- #11719: 弃用 .bind("ready") 事件
- #11731: 弃用“hover”伪事件
- #11733: 弃用 .load()、.unload() 和 .error() 方法
- #11764:允许在禁用的元素上委托非原生事件
- #11786: 弃用 .toggle( handler, handler, … ) 签名
操作
- #8894: 在 clone() 之后调用 appendTo() 和类似方法返回错误的 jQuery 集合
- #10324: Clone 不会复制 object 元素的 innerHTML
- #11231:Append、Prepend、After、Before 方法应接受数组作为第一个参数
- #11338:.replaceWith() 和断开连接的节点行为不一致。
- #11528:ie8 .html() 序列化错误也影响 html5 标签
- #11566:node.append 等方法在节点是 DocumentFragment 时不起作用
- #11617:定义一个 $.parseHTML 方法用于创建 HTML 片段
- #11809:.text(val) setter 中存在内存泄漏?
- #11898:prevAll() 带有复杂的 :not() 选择器返回结果顺序错误
- #12132:IE10 错误:克隆没有父节点的 object 元素
Offset
选择器
- #3778:选择器匹配问题
- #5568:在 FF/IE 上,选择器对带有注释标签的行为不同
- #7596:xpath 选择器属性名称带有方括号 [] 失败
- #8473:在 IE9rc 中,*[tabIndex] 会选择所有没有 tabindex 属性的元素
- #8906:.(prevAll('span:has(input,select,textarea)')
- #9400:弃用 :text、:radio、:checkbox 等选择器扩展
- #9810:重写位置选择器逻辑
- #10003:#6963 引入的回归/BC 破坏
- #10074:链式调用两个 [] 选择器并使用 :first 不起作用
- #10499::nth-child() 在 :has() 内部被视为在外部
- #10570:当页面上有跨域 iframe 时,:text 选择器在 IE7 中会抛出错误
- #10697:Sizzle 重构
- #10799:带有 [name="name"] 选择器的结果不一致(也破坏 .has)