Діалогове вікно діалогу jQuery змінити назву після зворотного виклику завантаження


111

Мені подобається змінити назву з діалогового вікна інтерфейсу користувача після того, як я надіслав форму в цьому діалоговому вікні інтерфейсу користувача. Тож у функції зворотного виклику після того, як loadя повинен запропонувати, але я намагався і гугл без результату.

Хтось має ідею?

Відповіді:


258

Використання діалогових методів:

$('.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
Будьте уважні, що версія "хакі" вище змінить заголовок ВСІХ діалогів на сторінці (якщо ви створили більше одного).
camainc

1
чи можу я пропустити кілька варіантів?
themhz

3
@themis у поточній версії є .option()метод, який також приймає об’єкт, дивіться options(options)тут: api.jqueryui.com/dialog/#method-option
Нік Крейвер

$ ("# dialog"). діалог ({autoOpen: false, show: {ефект: "сліпий", тривалість: 1000}, приховати: {ефект: "вибухнути", тривалість: 1000}, закрити: function () {; }, назва: "тест"}). діалог ("відкрито");
WhiteWolfza

Оскільки моя відповідь все ще привертає багато уваги, я також опублікую її тут .. stackoverflow.com/a/17745795/1315125
Ігор Л.

14

Я знайшов більш просте рішення:

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

Я вважаю за краще не лаятися, коли мені цього не потрібно, і вже існує схвалено способом jquery для встановлення заголовків HTML: переосмислення методу _title. Це вже охоплені в цьому SO відповідь: stackoverflow.com/questions/14488774 / ...
cincodenada

2

Я намагався реалізувати результат Ніка, який є:

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

0

Навіть краще!

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

Перший рядок не змінить назву діалогу. У діалоговому вікні інтерфейсу jQuery немає такого атрибута. Другий змінить зміст самого діалогового вікна, але це не те, що запитував користувач. І це припустимо, що idдіалог yoru є #dialog.
Пер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.