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 和效果模块的常规 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://jquery.org.cn/download/。公共 CDN 今天会收到其副本,请给它们几天时间来发布文件。如果您急于开始,请使用我们 CDN 上的文件,直到它们有机会更新为止。

感谢

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

变更日志

GitHub changelog: 3.4.1 中修复的问题 | 所有更改

构建

  • 修复 finalPropName 中的未解决的 jQuery 引用 (#4358, 0d4af529)

核心

  • 使 isAttached 在 iOS 10.0-10.2 上工作 (#4356, 7dddb19c)

事件

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