jQuery 1.7 Beta 2 发布

发布时间: 作者:

在月初举行的波士顿 jQuery 大会上,我们获得了社区宝贵的反馈,并在此基础上发布了新的测试版,它包含了进一步的修复并提高了稳定性。修复和功能的完整列表可以在下面找到。我们敦促大家开始在他们的应用程序中测试此代码,以便在最终发布之前确保没有重大问题。

您可以从 jQuery CDN 获取代码

请您将代码放入您的现有应用程序中,帮助我们测试。如果您发现问题,请告知我们。 提交错误并提及您正在针对 jQuery 1.7 Beta 2 进行测试。如果存在问题,我们希望将其修复!

jQuery 1.7 Beta 2 变更日志

1.7 Beta 2 版本的当前变更日志

Ajax

  • #9399: 弃用 jqXHR.success 和 jqXHR.error

属性

  • #5479: removeAttr: 删除多个属性
  • #10176: 注入的脚本标签被评估两次
  • #10278: checkboxEl.attr(‘checked’) 在 checkboxEl.click() 后返回过时值
  • #10429: IE7 - 当调用 removeAttr(‘contenteditable’); 时,出现无效的过程调用或参数

核心

  • #6485: IE 中 HTML5 的解决方案
  • #7102: 将 jQuery 注册为 CommonjS 异步模块
  • #9453: $.inArray 不支持 fromIndex
  • #10478: 将 jQuery.isNaN 切换为 jQuery.isNumeric

CSS

  • #10267: IE8 和 window is(‘:visible’) 崩溃

数据

  • #7323: 允许使用 $.fn.removeData 同时删除多个数据键
  • #8909: $(element).data() 会比需要扫描更多属性。
  • #8921: jQuery 私有数据应该保持私有

延迟

  • #8856: 请求: deferred.isUnresolved()
  • #9033: IE8 中的 try{ } finally{ } 错误
  • #9398: 改进延迟的建议

尺寸

  • #9434: .outerWidth()/.outerHeight()/.innerWidth()/.innerHeight() 应该适用于窗口和文档

效果

  • #5684: 效果: 动画回调中的异常会导致无限循环
  • #6150: .stop 有时不会清除 .delay
  • #6641: 在动画完成回调中调用 stop() 会导致其他动画冻结
  • #8685: 动画应该跟踪动画状态,以便正确处理堆叠动画
  • #9280: 允许为 animate() 使用多个效果队列
  • #9548: animate 不适用于 svg 元素的 fill-opacity css 属性
  • #10416: defaultDisplay 返回 block 而不是 FF 中 tr 的 table-row
  • #10445: 将 queue 设置为 true 会导致错误

事件

  • #3368: event.metaKey 应该仅在非 Mac 上分配给 event.ctrlKey
  • #6170: jQuery(window).scroll(); 会导致 IE* 滚动到 0,0
  • #6319: 回归: IE 中 change 处理程序中的 stopPropagation 错误地应用于 keydown 事件
  • #6386: 通过 “event.special.live.add” 支持 live 事件的数据参数
  • #6593: IE8: 当通过 jQuery 附加单独的处理程序时,DOM 0 事件处理程序被调用两次
  • #6667: submit 事件在某些条件下不会在 IE* 中委托
  • #6903: 特殊事件需要一种方法来确定它们是使用 .bind 还是 .live/.delegate 绑定
  • #6942: JQuery.event.fix 在 IE 处理键事件时会导致不必要的重绘
  • #7139: “hover” 事件别名应该适用于 .bind 以及 .live
  • #7161: 表单元素上的提交事件在 IE 中没有正确解绑
  • #7444: 使用“Enter”而不是按钮点击在 ie8 或 ie7 上提交表单会触发 live submit 事件两次。
  • #8157: 焦点已经处于文本字段中的元素会阻止 IE 中 change 事件触发
  • #8728: 离开时,当离开的元素被移除时,事件‘mouseenter’ 不会触发
  • #8789: 元数据: 事件属性钩子
  • #8858: 特殊事件 - _default 方法无法访问 trigger 方法的`data` 参数
  • #8866: IE8 input[type=file] 委托的 change 事件仅在 blur 时触发
  • #8982: bind(“unload someOther”) => 在 unload 时,处理程序只执行一次。
  • #9069: 当悬停在元素的子元素上时,使用 live 或 delegate 时,mouseleave 会触发
  • #9279: delegate() bind 无法正确处理选定元素的 mouseover/mouseout 和 mouseenter/mouseout
  • #9393: 统一和 DRY 事件系统
  • #9593: 委托的 submit 事件在 IE 中不是 jQuery.Event 的实例
  • #9724: 当 window.parentNode 是 DOM 元素时,trigger 函数中出现无限循环
  • #9901: 使用 .delegate 时,event.handleObj.namespace 不正确
  • #9933: jQuery.fn.toggle() 应该将状态存储在私有数据对象中
  • #9951: 当在处理程序中修改 DOM 时,.trigger() 中的顺序错误
  • #10375: 不要在 jQuery.event.props 中包含`type`
  • #10438: 重命名 jQuery.event.propHooks => .fixHooks
  • #10468: 删除已弃用的 jQuery.event.guid 和 jQuery.event.proxy
  • #10489: 断开连接的元素在 .trigger() 上冒泡到窗口

操作

  • #6782: 谨慎地允许更多字符串使用 innerHTML
  • #7037: 克隆元素中添加了重复的 mouseover 和 mouseout 事件。

选择器

  • #3144: .text() 方法的跨浏览器结果不一致
  • #5637: 布尔(和空)属性选择器失败
  • #6863: 更快的 getText
  • #7128: 由于使用 DOM 属性,属性选择器在 qSA 和 Sizzle 之间不一致
  • #8539: 缺少 querySelectorAll 的浏览器中的 Sizzle 缓存冲突
  • #9261: 属性存在于 filter/children/siblings 中不起作用
  • #9570: 选择器 $(‘form[name=”..”]’) 在某些情况下在 IE8 中返回零个元素
  • #10178: $(window).is(“a”) >> 未捕获的 TypeError: 无法调用未定义的‘toLowerCase’ 方法
  • #10315: Sizzle 在使用位置选择器时忽略 seed 参数

支持

  • #5145: Chrome 浏览器中的 jQuery.support.opacity = false
  • #6809: 添加 jQuery.support.fixedPosition

遍历

  • #10449: 函数 $(“#id”).closest(“.class”) 如果它有 .class,则返回元素 $(“#id”) 本身

关于“jQuery 1.7 Beta 2 发布”的 8 个想法

  1. Jeffrey Gilbert 说:

    性能改进图表在哪里?每当像“不必要的重绘”之类的修复出现时,我总是喜欢看这些。

  2. 在 WebKit 上测试 jquery-1.6.4 和 jquery-1.7b2。

    event.layerX 和 event.layerY 在 WebKit 中已损坏并已弃用。它们将在不久的将来从引擎中删除。

    只是想指出这一点。

  3. 我希望看到更多关注稳定性,而不是这些花哨的新功能。看看所有这些 bug,而这些仅仅是被修复的 bug!还有更多被关闭为“无活动”或根本没有处理。例子 A:http://bugs.jquery.com/ticket/10003 — 由对 Blackberry 支持的愿望造成的 IE 回归?真的吗?我知道 IE 不是每个人的最爱,但它 *确实* 比 Blackberry 普及得多!现在谁还在用 Blackberry?

    jQuery 的方向发生了什么变化……谁在掌控?整个 attr() vs prop() 的闹剧简直是荒谬可笑。它让我想起了给四年级的学生布置小组作业,然后看着他们手忙脚乱。

    jQuery 的成功正是因为它简单、不臃肿的特性。而现在这一切正在迅速改变。真的有那么多社区对所有这些 deferred 东西以及现在的这些回调有需求吗?为什么这必须是 jQuery?你已经从一个简单的 DOM/Ajax 库变成了一个伪框架。如果我 *想要* deferreds、回调等,我可以使用插件或外部库/框架,但不要强迫我使用传统意义上的 DOM/Ajax 库。下一步是什么?MVC,通过 MS 的“响应式扩展”,或者一些 AoP?趁我们现在在做,能不能也来点经典的 OOP?

    这就引出了一个问题:尽管社区广泛支持为 jQuery 提供更多大型应用程序控制(如 MVC 和经典 OOP),但 Resig 却用简单的挥手将其一概否定,但我们得到的是这些对 JS 社区(甚至对一般编程)来说还处于婴儿期的范式,而它们却获得了进入 jQuery 核心?

    这一切都太荒谬了。John,我不忍心告诉你,jQuery 已经彻底沦落,但我想我应该早点看到: “时髦”,“新潮流”等,都是“我喜欢跟风”的同义词。

    坚持你的核心竞争力!