jQuery UI dialog-невозможно удалить кнопки

Как удалить кнопки в диалоговом окне jquery? Например, я попытался перезвонить .диалог с правильными новыми параметрами, но диалог кажется незатронутым.

$('.selector').dialog ('option', 'buttons', {}); не работает и не работает, если объявлены фактические новые строки и функции кнопок.

мысли?

6 ответов


вы передаете новые кнопки, установленные неправильно. Параметры должны передаваться как объект.

это будет работать:

var options = {
    buttons: {}
};
$(selector).dialog('option', options);

нет необходимости уничтожать и создавать новый диалог.

конечно, вы также можете заменить объект buttons новым набором кнопок, если хотите:

var options = {
    buttons: {
        NewButton: function () {
            $(this).dialog('close');
            // add code here
        }
    }
};
$(selector).dialog('option', options);

чистки рядов,

$(".dialog").dialog("option", "buttons", null);

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


вам нужно destroy сначала текущий. Затем вы можете сделать новый с новыми опциями, которые вы хотите.

EDIT (для ответа на комментарий): Я не знаю, что тебе сказать. Я сделал следующее на своем сайте и WFM.

$('.selector').dialog('destroy');
$('.selector').dialog({ buttons: { "Ok": function() { $(this).dialog("close"); } } });
$('.selector').dialog('open');

вам нужно вернуться в состояние pre-init, чтобы изменить кнопки, что и есть destroy делает. Может, я просто недостаточно ясно выразился на ступеньках.


обсуждение здесь лучше: http://www.nabble.com/jQuery-dialog-add-remove-button-on-the-fly-td22036498s27240.html

добавьте в предписанные расширения, и вы можете просто использовать addbutton и removebutton (должен переключиться на camel case естественно:)


Anotherm, может быть, самый простой и очень гибкий способ сделать это через CSS. (что, если в будущем они вам понадобятся?..).

выглядит так:

.ui-dialog-titlebar-close{display:none}

Если вы хотите сделать это только для некоторых диалоговых окнах, можно добавить dialogClass: опция при инициализации диалога, и ваш css будет выглядеть (например, вы добавили myDialogClass как dialogClass, поэтому весь контейнер диалога будет доступен через этот класс:

.myDialog  .ui-dialog-titlebar-close{display:none}

удачи в настройка!