Jquery UI错误 - f.getClientRects不是函数

mat*_*ytn 47 javascript jquery jquery-ui

我正在尝试使Jquery UI工作,但事实并非如此.这是发生了什么.我正在加载依赖项:

<script src="assets/src/js/angular/angular.js"></script>
<script src="assets/src/js/angular-animate/angular-animate.js"></script>
<script src="assets/src/js/angular-route/angular-route.js"></script>
<script src="assets/src/js/jquery/dist/jquery.js"></script>
<script src="assets/src/js/jquery-ui/jquery-ui.js"></script>
<script src="assets/src/js/app.js"></script>
<script src="assets/src/js/main.js"></script>
Run Code Online (Sandbox Code Playgroud)

这是我的main.js文件:

$(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");
            }
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

当我在Brackets中运行代码时,Jquery UI已加载但不起作用,但是,当我将main.js文件注释掉然后将其恢复时,我在控制台中出现错误并且UI突然正常工作.这非常奇怪.

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
Run Code Online (Sandbox Code Playgroud)

我发现这个帖子讨论了这个问题,但仍然无法修复它.

Github上

干杯.

Vin*_*dar 64

你的jQuery UI是什么版本的?我在jQuery UI 1.11.4和jquery 3.0中遇到了同样的问题.安装jQuery UI 1.12.0-rc.2后,问题得到解决.

  • 对于 Jquery UI 的版本没有什么影响,上面评论中的修复有帮助!不管怎样,谢谢你! (2认同)
  • 啊,从1.11.4更新到1.12.1,这就是诀窍.谢谢! (2认同)

Mik*_*kee 35

添加jQuery的3迁移插件解决了这个问题,因为提到这里,更新的用户界面将很快出来.


2018年11月5日更新

如果使用最新的jQuery和jQuery UI,请使用最新的jQuery migrate来防止兼容性警告/问题.



小智 12

事实证明这是1.12.0之前的jQuery 3.xx和jQueryUI之间的兼容性.

包括下面的脚本解决了我的问题.

https://code.jquery.com/jquery-migrate-3.0.0.min.js