2010-01-31 9 views

Odpowiedz

241

zastosowaniem metod dialogowych:

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

lub bezpośrednio, choć hacky:

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

na przyszłość, można pominąć google z jQuery. Interfejs API jQuery odpowie na większość twoich pytań. W tym przypadku Dialog API page. Na głównej biblioteki: http://api.jquery.com

+8

Uwaga: powyższa wersja "hacky" zmieni tytuł WSZYSTKICH okien dialogowych na stronie (w przypadku, gdy utworzyłeś więcej niż jeden). – camainc

+1

Czy mogę przekazać wiele opcji? – themis

+3

@themis w obecnej wersji istnieje metoda '.option()', która również pobiera obiekt, patrz 'opcje (opcje)' tutaj: http://api.jqueryui.com/dialog/#method-option –

3

ulepszoną wersję hacky idei Nick Craver umieścić niestandardowy HTML w tytule dialogowego jQuery:

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

Wolę nie być hackerem, kiedy nie muszę, i jest to już wspierany jquery sposób ustawiania tytułów HTML: przesłonięcie metody _title. Jest już objęty tą odpowiedzią: http://stackoverflow.com/questions/14488774/using-html-in-a-dialogs-title-in-jquery-ui-1-10 – cincodenada

2

starałem się wdrożyć wynik Nick, który jest:

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

Ale to nie zadziałało, ponieważ miałem wiele okien dialogowych na jednej stronie. W takiej sytuacji poprawi tytuł tylko za pierwszym razem. Próbując poleceń odcinkowych nie działa:

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

Naprawiłem to dodając tytuł javascript argumentów funkcji każdego okna na stronie:

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

Znalazłem prostsze rozwiązanie:

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

Nadzieję, że pomaga!

+3

Uważam, że to jedyne odpowiednie rozwiązanie . Dzięki! – JoJo

-1

Jeszcze lepiej!

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

Pierwsza linia nie zmieni tytułu okna dialogowego. W oknie dialogowym interfejsu użytkownika jQuery nie ma takiego atrybutu. Drugi zmieni zawartość samego okna, ale nie o to pytał użytkownik. A to przy założeniu, że okno dialogowe 'id' of yoru to' # dialog'. – Pere

Powiązane problemy