webentwicklung-frage-antwort-db.com.de

Der jQuery-Dialog ändert den Titel nach dem Rückruf

Ich möchte den Titel eines UI-Dialogfelds ändern, nachdem ich ein Formular in diesem UI-Dialogfeld gesendet habe. Also in der Callback-Funktion nach load sollte ich vorschlagen, aber ich habe versucht und ohne Ergebnis gegoogelt.

Hat jemand eine Idee?

109
Guido Lemmens 2

Verwenden von Dialogmethoden:

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

Oder direkt, obwohl hacky:

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

Zum späteren Nachschlagen können Sie google mit jQuery überspringen. Die jQuery-API beantwortet Ihre Fragen die meiste Zeit. In diesem Fall ist die Seite Dialog-API . Für die Hauptbibliothek: http://api.jquery.com

255
Nick Craver

Ich habe eine einfachere Lösung gefunden:

$('#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'); 
});

Hoffentlich hilft das!

13
workdreamer

Eine Erweiterung der Hacky-Idee von Nick Craver, benutzerdefiniertes HTML in einen JQuery-Dialogtitel einzufügen:

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

Ich habe versucht, das Ergebnis von Nick zu implementieren:

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

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

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

Ich habe das behoben, indem ich den Titel zu den JavaScript-Funktionsargumenten jedes Dialogfelds auf der Seite hinzugefügt habe:

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'});
}
2
Tim B.

Noch besser!

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