it-swarm.com.de

jQuery UI-Dialog beim Ziehen von Problemen

Ich habe das Dialog-Plugin jQuery ui (jquery-ui-1.10.3) für eines unserer Produkte verwendet und ein mögliches "Problem" gefunden: Wenn die Hosting-Seite klein ist oder die aktuelle Ansicht der Hosting-Seite angezeigt wird Nach oben gescrollt, verhält sich das Ziehen eines geöffneten Dialogfelds wie erwartet. Das Problem manifestiert sich beim Hosten eines Dialogfelds in einer großen Seite, die an eine Stelle verschoben wird, die sich nicht ganz oben befindet. In diesem Fall springt das Dialogfeld beim Ziehen. Dies geschieht sowohl mit IE 9 als auch mit dem neuesten Firefox (21.0).

Die Seite wird dynamisch generiert, ist komplex und muss lang sein. Ich bin mit Geige nicht vertraut, aber es scheint keine Option für die Option jQuery-ui lib zu haben, die ich verwenden kann. 

Genauer gesagt fand ich, wenn ich die Hosting-Seite 100px nach unten rolle (also die obersten 100px der Hosting-Seite "Feed" in den oberen Rand des Browserfensters sind), dann, wenn ich den Dialog ziehe, anstatt ihn der Maus zu folgen springt 100px nach unten, so dass die Maus nicht erfasst wird. 

Der Dialog wird als initiiert 

 $ (Element) .dialog ({
 autoOpen: false, Breite: 950, Höhe: 820, 
 modal: false, anpassbar: true, ziehbar: true 
}); 

Meine Frage lautet: 1) Hat jemand anderes das gleiche Problem? 2) Wenn ja, handelt es sich um ein Einstellungsproblem oder einen Fehler.

Jeder Experte kann mir dabei helfen?

22
SFD - jinan

Ich hatte das gleiche Problem, der Inhalt der Seite wird automatisch generiert. Es ist sehr lang.

html, body {position: relative} löst das Problem.

32
robert

OK, ich habe festgestellt, dass dies ein Fehler in jQuery-ui 1.10.3 ist, siehe hier :

Das erscheint nur bei Verwendung der Benutzeroberfläche 1.10.3 und wenn die Bildlaufleiste in Firefox, Opera, IE8 nicht ganz oben Ist.

In Chrome funktioniert gut und auch mit 1.10.2 auf anderen Browsern.

Die Demo-Seite des UI-Dialogs hat auch diesen Fehler:

ziehen Sie den Dialog nach unten, bis die Bildlaufleiste wieder nach unten scrollen . Ziehen Sie den Dialog nach unten. Der Dialog fällt mit dem Offset ab

10
SFD - jinan

Meine Lösung, um diesen Fehler zu beheben, ähnelt der von Dado, verwendet jedoch das Drag-Ereignis:

        $(element).dialog({
            draggable: true,
            drag: function(event, ui) {
                var fixPix = $(document).scrollTop();
                iObj = ui.position;
                iObj.top = iObj.top - fixPix;
                $(this).closest(".ui-dialog").css("top", iObj.top + "px");
            }
        });

Meine Version: jQuery UI - v1.10.3 - 2013-10-10

5

Ich denke es gibt einen Fehler. Ich war auch mit diesem Problem konfrontiert. Meine Lösung zur Behebung dieses Problems, um das Ziehen zu deaktivieren. Machen Sie einfach schleppbar falsch. Wie folgt:

$(element).dialog({ 
    autoOpen: false, width: 950, height: 820, 
    modal: false, resizable: true, draggable: false
});
2
Iman Sedighi

Aktualisieren Sie die jQuery UI Library (js), die für mich funktioniert hat. http://jqueryui.com/download/
Denken Sie daran, auch Ihre CSS-Dateien zu aktualisieren.

1
Herlon Aguiar

Fehlerbericht: Fehlerbericht anzeigen

Meine Lösung zur Behebung dieses Fehlers besteht darin, die "ui.position.top" (für mich 228px) "zurückzusetzen".

$(element).dialog({
    dragStart: function(event, ui) {
        var fixPix = 228; // offset top (add your own here!)
        iObj = ui.position;
        if (iObj.top > fixPix) {
            iObj.top = iObj.top - fixPix;
        }
        ui.position = iObj;
    }
});

Meine Version: jQuery UI - v1.10.4 - 2014-01-17

Diese Lösung funktioniert für mich. Ich hoffe, es hilft auch Ihnen, bis dieser hässliche Fehler behoben ist.

0
Dado