JQuery UI диалоговое окно изменения названия после загрузки обратного вызова

106

Мне нравится изменять заголовок из диалогового окна пользовательского интерфейса после того, как я представил форму в этом диалоговом окне пользовательского интерфейса. Поэтому в функции обратного вызова после load я должен предложить, но я пробовал и искал без результатов.

У кого-нибудь есть идея?

Теги:
jquery-dialog

5 ответов

252
Лучший ответ

Использование методов диалога:

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

Или прямо, хаки, хотя:

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

Для справок в будущем вы можете пропустить Google с помощью jQuery. API jQuery будет отвечать на ваши вопросы большую часть времени. В этом случае Диалоговое окно API. Для основной библиотеки: http://api.jquery.com

  • 8
    Помните, что приведенная выше «хакерская» версия изменит заголовок ВСЕХ диалогов на странице (если вы создали более одного).
  • 1
    я могу передать несколько вариантов?
Показать ещё 3 комментария
8

Я нашел более простое решение:

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

Надеюсь, что это поможет!

3

Усовершенствование взломанной идеи Ник Крейвера поместить пользовательский HTML в заголовок диалога jquery:

var newtitle= '<b>HTML TITLE</b>';
$(".selectorUsedToCreateTheDialog").parent().find("span.ui-dialog-title").html(newtitle);
  • 0
    Я предпочитаю не быть хакером, когда мне это не нужно, и уже есть способ установить заголовки HTML, одобренный jquery: переопределение метода _title. Это уже описано в этом SO-ответе: stackoverflow.com/questions/14488774/…
2

Я попытался реализовать результат Nick, который:

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

Но это не сработало для меня, потому что у меня было несколько диалогов на 1 странице. В такой ситуации он только установит правильное название в первый раз. Не пытались выполнить команды сшивания:

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

Я исправил это, добавив заголовок в аргументы функции javascript каждого диалога на странице:

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

Еще лучше!

    jQuery( "#dialog" ).attr('title', 'Error');
    jQuery( "#dialog" ).text('You forgot to enter your first name');
  • 0
    Первая строка не изменит заголовок диалога. Там нет такого атрибута в диалоге jQuery UI. Второй изменит содержание самого диалога, но это не то, о чем просил пользователь. И это при условии, что id диалога yoru - #dialog .

Ещё вопросы

Сообщество Overcoder
Наверх
Меню