2010-01-31 15 views

Respuesta

241

Uso de métodos de diálogo:

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

o directamente, aunque hacky:

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

para referencia futura, puede omitir Google con jQuery. La API jQuery responderá tus preguntas la mayor parte del tiempo. En este caso, el Dialog API page. Para la biblioteca principal: http://api.jquery.com

+8

Tenga en cuenta que la versión "hacky" de arriba cambiará el título de TODOS los cuadros de diálogo en la página (en caso de que haya creado más de uno). – camainc

+1

puedo pasar múltiples opciones? – themis

+3

@themis en la versión actual hay un método '.option()' que también toma un objeto, vea 'options (options)' aquí: http://api.jqueryui.com/dialog/#method-option –

3

Una mejora de la idea hacky por Nick Craver para poner HTML personalizado en un título de diálogo jQuery:

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

Prefiero no ser hacky cuando no tengo que hacerlo, y hay ya es una forma respaldada por jquery para establecer títulos HTML: anulando el método _title. Ya está cubierto en esta respuesta SO: http://stackoverflow.com/questions/14488774/using-html-in-a-dialogs-title-in-jquery-ui-1-10 – cincodenada

2

Me trataron de poner en práctica el resultado de Nick, que es:

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

Pero eso no funcionó para mí porque tenía varios cuadros de diálogo en 1 página. En tal situación, solo establecerá el título correcto la primera vez. Tratando de comandos básicos no funcionó:

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

He arreglado esto añadiendo el título a los argumentos de la función JavaScript de cada cuadro de diálogo en la página:

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

he encontrado solución más simple:

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

Espero que ayude!

+3

Siento que esta es la única solución adecuada . ¡Gracias! – JoJo

-1

¡Mejor aún!

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

La primera línea no cambiará el título del diálogo. No hay tal atributo en el diálogo de la interfaz de usuario de jQuery. El segundo cambiará el contenido del diálogo en sí, pero eso no es lo que el usuario estaba pidiendo. Y eso es suponiendo que el 'id' del diálogo de yoru es' # diálogo'. – Pere

Cuestiones relacionadas