wake-up-neo.com

Jquery UI-Fehler - f.getClientRects ist keine Funktion

Ich versuche, die Jquery-Benutzeroberfläche zum Laufen zu bringen, aber das funktioniert nicht. Hier ist was passiert. Ich lade Abhängigkeiten:

<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>

Das ist meine main.js Datei:

$(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");
            }
        }
    });
});

Wenn ich den Code in Brackets ausführen, wird die Jquery-Benutzeroberfläche geladen, funktioniert jedoch nicht. Wenn ich jedoch meine main.js-Datei kommentiere und sie zurückbringe, ist dies der Fehler, den ich in der Konsole bekomme und die Benutzeroberfläche funktioniert plötzlich. Es ist extrem komisch.

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

Ich habe in diesem Thread festgestellt, dass das Problem besprochen wurde, aber es immer noch nicht behoben werden konnte.

Github

Prost.

38
matveytn

Welche Version ist Ihre jQuery-Benutzeroberfläche? Ich hatte das gleiche Problem mit jQuery UI 1.11.4 und Jquery 3.0. Nach der Installation von jQuery UI 1.12.0-rc.2 wurde das Problem behoben.

60
Vin Shahrdar

Das Hinzufügen des jQuery 3 Migrate-Plugins behebt dieses Problem wie angegeben hier , die aktualisierte Benutzeroberfläche wird in Kürze erscheinen.


5. NOVEMBER 2018 AKTUALISIERUNG

Wenn Sie die neueste Benutzeroberfläche von jQuery und jQuery verwenden, verwenden Sie latest jQuery migrate , um Kompatibilitätswarnungen/-probleme zu vermeiden.


29
Mikee

Es stellt sich heraus, dass dies eine Kompatibilität zwischen jQuery 3.x.x und jQueryUI vor 1.12.0 ist.

das folgende Skript hat das Problem für mich gelöst.

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

8
Ravi Rajan
> npm remove jqueryui
> npm i -S jquery-ui-dist

Dadurch wird eine Version der JQuery-Benutzeroberfläche heruntergeladen, die direkt in <script>-Tags eingefügt werden kann.

0
Slawa

Nachdem ich alle Updates gemacht hatte und STILL das Problem hatte, habe ich es einfach im Code behoben:

Suchen Sie nach diesem:

if ( !elem.getClientRects().length ) {
    return { top: 0, left: 0 };
}

Geben Sie dies kurz davor ein:

if (!elem.getClientRects()) {
    return { top: 0, left: 0 };
}
0
TheWizardOfTN