Jquery UI error - f.getClientRects is not a function
我正在尝试使Jquery UI工作,但事实并非如此。 这是发生了什么。 我正在加载依赖项:
1 2 3 4 5 6 7 | <script src="assets/src/js/angular/angular.js"> <script src="assets/src/js/angular-animate/angular-animate.js"> <script src="assets/src/js/angular-route/angular-route.js"> <script src="assets/src/js/jquery/dist/jquery.js"> <script src="assets/src/js/jquery-ui/jquery-ui.js"> <script src="assets/src/js/app.js"> <script src="assets/src/js/main.js"> |
那是我的main.js文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | $(function () { $("input[type=submit]") .button() .click(function (event) { event.preventDefault(); }); }); $(function () { $("#circum").buttonset(); }); $(function () { $("#dialog-message").dialog({ modal: true, buttons: { Ok: function () { $(this).dialog("close"); } } }); }); |
当我在Brackets中运行代码时,Jquery UI已加载但不起作用,但是,当我注释掉main.js文件然后将其带回时,这是我在控制台中遇到的错误,并且UI突然起作用。 太奇怪了
1 2 3 4 5 6 7 8 9 10 11 | jQuery.Deferred exception: elem.getClientRects is not a function TypeError: elem.getClientRects is not a function at jQuery.offset (http://127.0.0.1:27530/assets/src/js/jquery/dist/jquery.js:9779:14) at Object.getWithinInfo (http://127.0.0.1:27530/assets/src/js/jquery-ui/jquery-ui.js:1157:26) at jQuery.$.fn.position (http://127.0.0.1:27530/assets/src/js/jquery-ui/jquery-ui.js:1179:23) at _position (http://127.0.0.1:27530/assets/src/js/jquery-ui/jquery-ui.js:8709:17) at ._position (http://127.0.0.1:27530/assets/src/js/jquery-ui/jquery-ui.js:415:25) at open (http://127.0.0.1:27530/assets/src/js/jquery-ui/jquery-ui.js:8334:8) at .open (http://127.0.0.1:27530/assets/src/js/jquery-ui/jquery-ui.js:415:25) at _init (http://127.0.0.1:27530/assets/src/js/jquery-ui/jquery-ui.js:8210:9) at ._init (http://127.0.0.1:27530/assets/src/js/jquery-ui/jquery-ui.js:415:25) at _createWidget (http://127.0.0.1:27530/assets/src/js/jquery-ui/jquery-ui.js:587:8) undefined |
我发现此线程正在讨论该问题,但仍无法解决。
Github
干杯。
您的jQuery UI是什么版本? jQuery UI 1.11.4和jquery 3.0存在相同的问题。 安装jQuery UI 1.12.0-rc.2后,此问题已解决。
如此处所述,添加jQuery 3 Migrate插件可以解决此问题,更新的UI即将发布。
2018年11月5日更新
如果使用最新的jQuery和jQuery UI,请使用最新的jQuery迁移以防止兼容性警告/问题。
原来,这是jQuery 3.x.x和1.12.0之前的jQueryUI之间的兼容性。
包括下面的脚本为我解决了这个问题。
https://code.jquery.com/jquery-migrate-3.0.0.min.js
在完成所有更新并仍然有问题之后,我只是在代码中对其进行了修复:
寻找这个:
1 2 3 | if ( !elem.getClientRects().length ) { return { top: 0, left: 0 }; } |
在此之前输入:
1 2 3 | if (!elem.getClientRects()) { return { top: 0, left: 0 }; } |
1 2 | > npm remove jqueryui > npm i -S jquery-ui-dist |
这将下载JQuery UI版本,该版本可以直接包含在