2010-11-24 18 views
0

Ich hoffe, dass jemand anderes dies erfahren hat und kann mir in die richtige Richtung auf die Ursache/beheben.jQuery UI-Dialog Titelleiste Problem

Das Problem, das ich habe, ist, dass ich einen jQuery UI-Dialog für einige Formulareingabe verwende. Wenn der Dialog angezeigt wird, ist die gesamte Titelleiste nicht vorhanden. Ich habe es im Firebug geöffnet und bemerkt, dass es ein CSS-Item gibt, das wie folgt bezeichnet wird;

element.style { 
    display:none; 
} 

Die element.style, in den folgenden erscheint/html/Körper/div [3]/div zu beziehen, die die für die div titlebar selbst verwendet wird. Wenn ich die Anzeige deaktiviere: keine; Die Titelleiste wird sichtbar. Also, ich weiß, was scheint, es zu verursachen, aber es scheint auch, dass das css das Ergebnis von etwas ist, das vielleicht in jquery selbst vielleicht geschieht.

Ich dachte ursprünglich, dass ich CSS-Konflikte aufgrund meiner CSS-Dateien haben könnte, also habe ich sie auskommentiert und versucht, die Seite nur mit den jquery-Bibliotheken und den benutzerdefinierten CSS und Bildern auszuführen. Immer noch das Gleiche.

Ich habe jetzt seit Tagen kämpfen und könnte wirklich einen Ratschlag verwenden.

Dank

UPDATE:

$(document).ready(function() { 
    $("#dlgEditMlgData").dialog({ autoOpen: false, 
            modal: true, 
            show: 'blind', 
            hide: 'explode', 
            title: 'Mileage Entry Edit Utility' 
    }); 
    $("#dlgEditMlgData").hide().siblings().hide(); 
}); 
+0

Setzen Sie den Titeltext (dom-Element Titelattribut oder Dialogoptionen)? – sje397

+0

Ich setze den Titeltext in dem Javascript, das den Dialog erstellt. – Skittles

+0

$ (document) .ready (function() { $ ("# dlgEditMlgData") Dialog ({ AutoOpen-. Falsch, modal: true, Show: 'blind', verstecken: 'explodieren', Titel : 'Mileage Entry Edit Utility' }); $ ("# dlgEditMlgData"). Hide(). Siblings(). Hide(); }); – Skittles

Antwort

1

Sie geschrieben Code wie folgt:

$(document).ready(function() { 
    $("#dlgEditMlgData").dialog({ 
    autoOpen: false, 
    modal: true, 
    show: 'blind', 
    hide: 'explode', 
    title: 'Mileage Entry Edit Utility' 
    }); 
    $("#dlgEditMlgData").hide().siblings().hide(); 
}); 

Wenn Sie das Element nennen .dialog wird an das Ende des Dokuments verschoben und eingefügt in ein Wrapper (Der Rahmen des Dialogs).

Aber danach rufen Sie Verstecken auf dem Element und auch seine 'Geschwister' verstecken, was bedeutet, dass Sie das div selbst ausblenden, aber Sie auch die Titelleiste, die ein Geschwister zu dem div ist, nachdem es verschoben wurde. Wenn Sie die Geschwister des Elements ausblenden möchten, versuchen Sie dies, bevor Sie das Dialogfeld erstellen.

+0

Also sagen Sie, die Geschwister vor dem obigen Code zu nennen? – Skittles

+0

Vor dieser Zeile: $ ("# dlgEditMlgData") .dialog ({ –

+0

Oh Mann! Das war zu einfach! Vielen Dank für diese Antwort. Das war das Problem. Ich habe es vor dem Dialogdefinitionsblock verschoben und auch geändert es so, dass es den Container div versteckt und das hat funktioniert.:) – Skittles

1

Gibt es einen Grund, dass Sie $ ("# dlgEditMlgData") aufrufen. Hide(). Siblings(). Hide()? Wenn Sie a als Dialog mit autoOpen auf false initialisieren, wird das Dialogfeld zum Starten ausgeblendet. Um den Dialog zu zeigen, rufen Sie dann:

$('#dlgEditMlgData').dialog('open'); 

Keine Notwendigkeit, explizit aufrufen hide() auf dem Dialog oder seine Geschwister.

+0

Ich habe mehrere Dialoge in einem Container div eingekapselt, so dass jeder auf Abruf aufgerufen werden kann. Wenn ich Geschwister nicht verstecke, werden die anderen auf der Seite angezeigt. Gibt es einen besseren Weg, dies vielleicht anzugehen? – Skittles

+0

Die anderen Dialoge sollten nicht angezeigt werden, wenn sie alle mit autoOpen: false initialisiert sind. Können Sie Ihr Beispiel aktualisieren, um das Problem anzuzeigen, das durch mehrere Dialoge verursacht wird? –

+0

James, danke für die Einsicht. Ich denke, deine Antwort und Mikaels Antwort waren beide richtig. Danke euch beiden! Problem gelöst. :) – Skittles