jQuery 1.8 Beta 2 发布

发布于 作者

在 jQuery 中心,过去几周真是疯狂,先是 Beta 1 的发布,紧接着是旧金山举行的 jQuery 大会。别担心!在所有的旅行、会议、会谈和关于 jQuery 未来发展方向的博文中,我们实际上还是写了一些代码。作为证明,以下是 jQuery 1.8 Beta 2。

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

这是程序的关键部分,我们在此呼吁你,jQuery 社区,帮助我们完成这一目标。使用 Beta 2 在旧浏览器、新浏览器、红色浏览器和蓝色浏览器中进行测试。(分别指 IE6、Chrome Canary、Opera 和 Internet Explorer。)请用所有代码测试此文件,在所有模式下进行充分测试。Beta 2 中有什么问题吗?请现在告诉我们,在我们完成之前!

在那些测试过 Beta 1 的人的帮助下,我们发现了一些错误并修复了它们。我们不能过分强调在你使用这些 Beta 版本测试时,我们获取你的反馈有多么重要。我们不喜欢发布最终版本,然后在你将其添加到网页中时导致问题,而防止这种情况发生的办法是在 Beta 版本中进行测试,并在提前告知我们问题。

注意: 此版本需要与 jQuery UI 协同修复一些问题。因此,使用 jQuery UI 的页面需要包含最新的 UI 主版本,以针对 jQuery 1.8b2 进行测试。你可以从这里获取它:https://code.jqueryjs.cn/ui/jquery-ui-git.js。jQuery UI 1.8 将有一个维护版本,其中包含 jQuery 核心 1.8 支持,但鼓励用户在 jQuery UI 1.9 发布时更新到它。

如果你发现问题,请尝试将其简化为一个简单的测试用例。 jsFiddle 是我们首选的获取测试用例的方式,因为它允许我们调整测试用例、诊断问题并探索解决方案。(为框架选择jQuery (edge),即最新代码。)有了测试用例,请前往 错误跟踪器 并告诉我们发生了什么。谢谢!

除了在 Beta 1 中报告的错误修复外,这个新的 Beta 版本还对 Sizzle 引擎进行了 重大重写,以实现更好的性能。它修复了与 IE 6、7 和 8 相关的大量错误,并使这些浏览器使用起来更加一致。与老 IE 的完美兼容始终是一个难以实现的目标,但我们仍在努力使你的开发生活尽可能轻松,无论使用什么浏览器。

如果你按照 Github 上 README 文件 中的描述构建自己的自定义版本,你现在可以选择省略一些将在未来版本中删除的弃用功能。我们将随着我们隔离其他弃用功能而不断添加此文件。

以下是从 jQuery 1.7.2 开始的所有更改的完整列表。

jQuery 1.8b2 更改日志

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

Ajax

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

属性

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

构建

  • #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-* 属性解析不正确

延迟

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

效果

  • #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:无法 off() 自定义事件 ($.event.special)
  • #11021:悬停黑客会破坏名为“悬停”的命名空间
  • #11076:.clone(true) 会丢失委托过滤器
  • #11130:jQuery.fn.on:带有空选择器的绑定映射会忽略数据
  • #11145:$(document).on() 不适用于 name="disabled"

操作

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

其他

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

队列

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

支持

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

遍历

  • #11370:$('<div>').siblings() 会抛出异常

关于“jQuery 1.8 Beta 2 发布”的 5 个想法

  1. 所以是两个错别字,似乎是 -
    “以下是自 jQuery 1.7.2 以来所有更改的完整列表。”将 1.7.2 替换为 1.8b1
    (我在这里根本找不到 1.7.2 到 1.8 的更改,这就是我认为这是错别字的原因。)

    “1.7.2rc1 版本的当前更改日志。”将 1.7.2rc1 替换为 1.8b2

    @Buf.di -
    插件的问题也可能是 1.8 的错误(如果它们在 1.7 中有效且不使用“curCSS”(只需将其更改为“css”)。

    感谢你的工作!

  2. 我迫不及待地想要测试 Sizzle。没有什么比让好东西变得更好更令人兴奋的了。另外,感谢您修复了 IE 中的 Ajax 问题。谢谢