我可以将 jQuery UI 1.12.1 与 jQuery 3.x 一起使用吗?
Posted
技术标签:
【中文标题】我可以将 jQuery UI 1.12.1 与 jQuery 3.x 一起使用吗?【英文标题】:Can I use jQuery UI 1.12.1 with jQuery 3.x? 【发布时间】:2017-03-22 11:41:04 【问题描述】:我将我的 jQuery 1.7.2
更改为 3.1.1
并将我的 jQuery UI 从版本 1.8.16
更改为版本 1.12.1
。
我现有的很多 JS 东西都坏了,比如按钮的样式,dialog
的行为方式出乎意料,即模式对话框的一半被神秘的 <div class="ui-widget-overlay ui-front"></div>
掩盖了
由于上面的覆盖,我怀疑 jQuery UI 有问题。我去了 jQuery UI 网站,我看到稳定版是为jQuery 1.7+
提供的。
这是否意味着我应该将 jQuery 1.x 与 jQuery UI 一起使用,或者我可以使用 jQuery 3.x 好吗(另外...尝试找出我的样式和功能损坏的原因)?
【问题讨论】:
您是否同时更改了 jquery-ui css 和 js 文件?你刷新(&清除缓存)了吗? 您是否更新了代码以考虑到 1.8.16->1.12.1 之间的所有重大更改以及 1.7.2 和 3.1.1 之间的所有更改? @Dekel,不知道 jquery-ui CSS... 会看看。凯文:不,没有考虑到任何事情。 @Dekel - 下载和更新 CSS 解决了这个问题。谢谢 【参考方案1】:jQueryUI 支持以下 jQuery 版本范围:
"dependencies":
"jquery": ">=1.7.0 <4.0.0"
,
我会说你很高兴。
来源:https://github.com/jquery/jquery-ui/blob/master/package.json#L49
您可能会看到很多损坏的组件,因为您要么没有导入它们的 CSS,要么覆盖了它们的 CSS。
【讨论】:
它可能有效,但不完全。考虑使用 jQuery Migrate 为已弃用的函数添加 polyfill。 大部分动画不适用于 UI 1.12.1 和 jQuery 3.4.1。例如 jqueryUI hide(easingname, options, callback) 方法将完成动画然后再次显示对象。【参考方案2】:你可以在 jQuery 3.2.1 中使用 jQuery-UI 吗?
恕我直言,你不能没有严重的问题。 请参见下面给出的示例。
假设如下配置:
jQuery 3.2.1 (CDN) jQuery UI 1.12.1 (CDN) 检测 jQ Migrate 3.0.0 以进行错误检测。我收到以下错误:
jQuery.expr[":"] 现在是 jquery-ui.min.js 中的 jQuery.expr.pseudos jQuery.expr.filters 现在是 query-ui.min.js 中的 jQuery.expr.pseudos jQuery.unique 已弃用,请使用 jQuery.uniqueSort【讨论】:
这些是警告而不是错误,而且它似乎都按预期工作。奇怪的是 jQuery UI 没有使用最新的 jQuery 语法。 我相信由于使用了 jQ Migrate,它们只是警告。没有它,我很确定它们将是完全错误的。 对于任何偶然发现这个问题的人:从 jquery 3.4.1 开始,jquery-ui 使用的所有已弃用的东西都会在 jqmigrate 插件中引发警告,但它们仍然可以工作 - 它们是不完整的错误。别名仍然存在。 jquery-ui 作者似乎并不真正关心更新他们的库以使用非弃用别名,所以除非你想分叉 jquery-ui,否则你必须忍受它。 因为 jQuery UI 库还没有更新,所以我创建了一个补丁。见这里:github.com/DenisLabrecque/jQuery-UI-Fixed-for-3.5.1 谢谢丹尼斯 - 这非常有用!以上是关于我可以将 jQuery UI 1.12.1 与 jQuery 3.x 一起使用吗?的主要内容,如果未能解决你的问题,请参考以下文章
带有 React 和 Vue 的语义 UI 和 jQuery