2010-01-31 17 views

Antwort

241

Mit Dialogmethoden:

$('.selectorUsedToCreateTheDialog').dialog('option', 'title', 'My New title'); 

Oder direkt, hacky aber:

$("span.ui-dialog-title").text('My New Title'); 

Für die Zukunft können Sie Google mit jQuery überspringen. Die jQuery API beantwortet die meisten Fragen. In diesem Fall ist die Dialog API page. Für die Hauptbibliothek: http://api.jquery.com

+8

Beachten Sie, dass die obige "hacky" -Version den Titel ALLER Dialoge auf der Seite ändert (falls Sie mehrere erstellt haben). – camainc

+1

kann ich mehrere Optionen übergeben? – themis

+3

@themis In der aktuellen Version gibt es eine '.option()' Methode, die auch ein Objekt übernimmt, siehe 'Optionen (Optionen)' hier: http://api.jqueryui.com/dialog/#method-option –

3

Eine Verbesserung der Hacky Idee von Nick Craver benutzerdefinierte HTML in ein jQuery-Dialogtitel zu setzen:

var newtitle= '<b>HTML TITLE</b>'; 
$(".selectorUsedToCreateTheDialog").parent().find("span.ui-dialog-title").html(newtitle); 
+0

Ich bevorzuge es nicht, hacky zu sein, wenn ich nicht muss, und es gibt bereits eine von jQuery empfohlene Methode zum Setzen von HTML-Titeln: Überschreiben der _title-Methode. Es ist bereits in dieser SO Antwort abgedeckt: http://stackoverflow.com/questions/14488774/using-html-in-a-dialogs-title-in-jquery-ui-1-10 – cincodenada

2

Ich versuchte, das Ergebnis von Nick zu implementieren, die ist:

$('.selectorUsedToCreateTheDialog').dialog('option', 'title', 'My New title'); 

Aber das hat nicht funktioniert, weil ich mehrere Dialoge auf 1 Seite hatte. In einer solchen Situation wird der Titel nur beim ersten Mal richtig gesetzt. Der Versuch, zu heften Befehle funktionieren nicht:

$("#modal_popup").html(data); 
    $("#modal_popup").dialog('option', 'title', 'My New Title'); 
    $("#modal_popup").dialog({ width: 950, height: 550); 

Ich reparierte diese durch den Titel an die JavaScript-Funktion Argumente jeder Dialog auf der Seite hinzufügen:

function show_popup1() { 
    $("#modal_popup").html(data); 
    $("#modal_popup").dialog({ width: 950, height: 550, title: 'Popup Title of my First Dialog'}); 
} 

function show_popup2() { 
    $("#modal_popup").html(data); 
    $("#modal_popup").dialog({ width: 950, height: 550, title: 'Popup Title of my Other Dialog'}); 
} 
9

Ich habe gefunden, einfachere Lösung:

$('#clickToCreate').live('click', function() { 
    $('#yourDialogId') 
     .dialog({ 
       title: "Set the title to Create" 
     }) 
     .dialog('open'); 
}); 


$('#clickToEdit').live('click', function() { 
    $('#yourDialogId') 
     .dialog({ 
       title: "Set the title To Edit" 
     }) 
     .dialog('open'); 
}); 

Hoffe, dass hilft!

+3

Ich denke, das ist die einzige geeignete Lösung . Vielen Dank! – JoJo

-1

Noch besser!

jQuery("#dialog").attr('title', 'Error'); 
    jQuery("#dialog").text('You forgot to enter your first name'); 
+0

Die erste Zeile ändert den Dialogtitel nicht. Im jQuery UI-Dialogfeld gibt es kein solches Attribut. Der zweite wird den Inhalt des Dialogs selbst ändern, aber das hat der Benutzer nicht gefragt. Und das ist die Annahme, dass die 'ID' Ihres Dialoges '# dialog' ist. – Pere