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.
Prost.
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.
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.
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.
> 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.
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 };
}