Отображение модального диалога с пользовательским интерфейсом jquery без элемента?

#javascript #jquery #jquery-ui #dialog #jquery-ui-dialog

#javascript #jquery #jquery-ui #диалог #jquery-ui-dialog

Вопрос:

Я создаю небольшое приложение jquery. Мне нужно, чтобы появилось несколько полей подтверждения. Однако я не хочу добавлять элемент к телу только для того, чтобы открыть диалоговое окно. Есть ли способ избежать этого? Просто вызвать диалоговое окно и передать аргументы, такие как заголовок, текст и параметры?

Ответ №1:

При создании диалогового окна пользовательского интерфейса jQuery текущие версии (1.8.*) автоматически добавляют диалоговое окно в основной текст.

Итак, если вы делаете:

 $('<div>').dialog({modal: true})
  

это просто работает. Вы должны убедиться, что вы вызываете .remove() с закрытым диалогом, чтобы удалить новый элемент, хотя!

 function myalert(title, text) {
    var div = $('<div>').html(text).dialog({
        title: title,
        modal: true,
        close: function() {
            $(this).dialog('destroy').remove();
        },
        buttons: [{
            text: "Ok",
            click: function() {
                $(this).dialog("close");
            }}]
    })
};

myalert("Test", "This is a test modal dialog");
  

Смотрите http://jsfiddle.net/alnitak/G3GRZ для полной рабочей демонстрации.

Ответ №2:

Просто сделай это:

 $('<div>My dialog text.</div>').dialog({ modal: true });