jQuery 3.4.1:在 IE 中触发 focus 事件并在 iOS 10 中查找根元素

发布于 作者

大家好!jQuery 3.4.0 发布仅仅三周前,但我们收到了一些需要修补发布的错误报告。感谢所有报告问题并帮助我们快速解决问题的人。以下是变更内容

在 IE 中多次触发 focus 或 blur

jQuery 3.4.0 改变了事件处理程序触发原生事件(如 focusblur)的方式。这些改变导致了一个回归,有时会导致出现一个神秘的错误,以 "saved.shift is not a function" 的形式抛出。现在已修复。

示例

// Error thrown in IE10-11
// after clicking #test-element twice
jQuery("#test-element").click(function() {
  jQuery(this).trigger("blur");
});

在 iOS 10.0-10.2 中检查元素附加

在发布 3.4.0 时,我们在 iOS 的多个版本中运行了我们的测试,包括 iOS 10.3,但没有 10.0-10.2。这些版本不支持我们用来确定元素是否附加到 DOM 的原生函数。其他版本的 iOS 没有受到影响。我们添加了一个保护措施,以确保此方法存在,并在必要时回退到其他选项。

使用 AMD 加载 jQuery

jQuery 3.4.0 中添加了一个小模块,该模块使用全局 jQuery 而不是使用 AMD 加载的本地 jQuery。这导致使用 AMD 加载时出现 "jQuery is undefined" 错误,但现在应该已修复。

 


升级

如果您从 jQuery 3.0+ 升级,则不应该有任何兼容性问题。如果您尚未升级到 jQuery 3+,请查看3.0 升级指南jQuery Migrate 3.0 插件 将帮助您识别代码中的兼容性问题。

请尝试使用此新版本并告知我们您遇到的任何问题

下载

您可以从 jQuery CDN 获取文件,或直接链接到它们

https://code.jqueryjs.cn/jquery-3.4.1.js

https://code.jqueryjs.cn/jquery-3.4.1.min.js

您也可以从 npm 获取此版本

npm install jquery@3.4.1

精简版本

有时您不需要 ajax,或者您更喜欢使用专注于 ajax 请求的众多独立库之一。而且通常使用 CSS 和类操作来进行 Web 动画更简单。除了包含 ajax 和 effects 模块的常规版本的 jQuery 之外,我们还发布了一个“精简”版本,它排除了这些模块。如今 jQuery 的大小很少会成为负载性能问题,但精简版本比常规版本压缩后小约 6k 字节。这些文件也可以在 npm 包和 CDN 上获得

https://code.jqueryjs.cn/jquery-3.4.1.slim.js

https://code.jqueryjs.cn/jquery-3.4.1.slim.min.js

这些更新已经在 npm 和 Bower 上作为当前版本提供。有关获取 jQuery 的所有方法的信息,请访问https://jqueryjs.cn/download/。公共 CDN 今天会收到它们的副本,请给他们几天时间来发布文件。如果您急于快速入门,请使用我们 CDN 上的文件,直到它们有机会更新。

感谢

感谢所有参与此版本的人,包括提交补丁、报告错误或测试的人,包括Richard GibsonMichal Golebiowski-Owczarek 和整个 jQuery 团队。

变更日志

GitHub 变更日志: 3.4.1 中修复的问题 | 所有变更

构建

  • 修复 finalPropName 中未解析的 jQuery 引用 (#43580d4af529)

核心

事件

  • 防止 leverageNative 注册重复的虚拟处理程序 (6c1e7dbf)
  • 修复处理多个异步 focus 事件 (#435024d71ac7)