2016-06-26 4 views
0

Ich habe mehrere Antworten für diese Frage gesehen, aber nicht in der Lage zu finden, dass diese Arbeit.Entfernen Titelleiste ohne die Kreuz-Schaltfläche von jQuery Dialogfeld

Wie entferne ich die Titelleiste von einem jQueryUI Dialogfeld, während die Schließen-Schaltfläche beibehalten.

Ich habe dies versucht und es funktioniert nicht. Es ist auch keine gute Lösung.

$("#example").dialog(dialogOpts); 
// remove the title bar 
$(".ui-dialog-titlebar").hide(); 

Ich konnte dies folgen und die Titelleiste loswerden. Dadurch wird aber auch die Schließen-Schaltfläche entfernt und da keine Titelleiste vorhanden ist, ist das Dialogfeld nicht mehr ziehbar.

jquery UI dialog: how to initialize without a title bar?

ich versucht, diese Geige hier folgen die Beseitigung der Titelleiste zu erhalten und die Schließen-Schaltfläche halten.

http://jsfiddle.net/NK2qm/2/

jedoch ändert dies die CSS für alle Dialogfelder und fügt ein Dreieck unter dem Dialogfeld. Ich möchte, dass dies nur für eine Klasse von Dialogfeldern und minus dem Dreieck unten geschieht.

Kann jemand auf diese Frage mit einer Geige antworten, die zeigt, wie man es macht?

Danke.

+0

so wollen Sie nicht, dass "Mein Dialog" Titel, nicht wahr? – Thinker

+0

Ja. Ich will den Titel nicht. Willst du den Schließen-Knopf? Sieh dir den Link zum Thema an. Löst das gesamte Problem tatsächlich. Nur dass es alle Dialogfelder ändert. Können wir diese Geige verändern, um dieses Problem zu lösen? – akshitBhatia

+0

Sie können es mit seiner Klasse entfernen, oder? – Thinker

Antwort

1

Eine Lösung könnte darin bestehen, eine zweite Instanz des jQueryUI-Dialogfelds zu erstellen und gezielt auf diese Instanz im CSS zu verweisen.

jsFiddle Demo

CSS wird wie folgt aussehen:

[aria-labelledby=ui-id-2].ui-dialog .ui-dialog-titlebar { 
    background:transparent; 
    border:none; 
} 
[aria-labelledby=ui-id-2].ui-dialog .ui-dialog-title { 
    display:none; 
} 

In Google Chrome können Sie festlegen, welche aria-labelledby Wert verwenden, indem Sie einen Rechtsklick auf die Titelleiste und wählen Inspect kennen. Untersuchen Sie den HTML-Code im linken Bereich sorgfältig, experimentieren Sie mit dem Deaktivieren/Ändern von CSS-Werten im rechten Bereich.

Das Dreieck unten wird durch das ::after Pseudoelement auf .ui-resizable-handle .ui-resizable-s verursacht. Sie können sehen, ich habe versucht, es zu stylen, aber ich werde das für Sie verlassen, um herauszufinden (oder eine andere SO-Frage zu stellen).

+0

Kommentiert den :: before und :: after Part von der Geige. Das ist die Lösung, nach der ich gesucht habe. http://jsfiddle.net/NK2qm/125/ – akshitBhatia

+0

Gibt es jedoch eine Möglichkeit, die Option dialogClass wirksam zu nutzen und die CSS entsprechend zu modifizieren? Ich denke, das ist ein besserer Weg. – akshitBhatia

+1

Ja, Sie können es [so] (http://jsfiddle.net/NK2qm/126/) tun. Beachten Sie, dass Sie eine zweite Methode '.option()' hinzufügen müssen, um die bereits definierte Konfiguration für das zweite Dialogfeld zu ändern. * Die Alternative besteht darin, zwei völlig getrennte Dialogdefinitionen zu haben, eine für '$ ('# dialog1')' und eine für '$ ('# dialog2')' * – gibberish