Jquery Dialog - кнопки, отображаемые на лету - PullRequest
0 голосов
/ 19 декабря 2011

Есть ли способ управления отображением кнопок в диалоге Jquery?

Сценарий:

Возможно, может существовать программная логика, при которой после сохранения данных в диалоговом окне появляется кнопка «Удалить». (имеется в виду, что после отправки формы в диалоговом окне весь диалог обновляется? >> Это включает в себя кнопки загружаемого диалогового окна?)

Какой совет?

1 Ответ

2 голосов
/ 19 декабря 2011

Вы можете сделать это, используя методы получения и установки параметров кнопок в диалоговом окне jQuery. Следующий пример взят из документов jQuery UI :

//getter
var buttons = $( ".selector" ).dialog( "option", "buttons" );

//setter
$( ".selector" ).dialog( "option", "buttons", [
    {
        text: "Ok",
        click: function() { $(this).dialog("close"); }
    }
] );

Итак, в вашем примере вы можете сделать:

Добавление

// Get existing buttons
var buttons = $( ".selector" ).dialog( "option", "buttons" );

// Add a delete button
buttons.push({
    text: "Delete",
    click: function () {
        // Do your deletion stuff
    }
});

// Put the modified button Array back in
$( ".selector" ).dialog( "option", "buttons", buttons );

Удаление

// Get existing buttons
var buttons = $( "#testDialog" ).dialog( "option", "buttons" );

$.each(buttons, function (i) {
    if (this.text === "Delete") {
        // We've found the button we want to delete so remove it from Array
        buttons.splice(i, 1);

        // No point in continuing the loop as we've removed what
        // we want to remove.
        return;
    }
});

// Put the modified button Array back in
$( "#testDialog" ).dialog( "option", "buttons", buttons );

Вот рабочий пример .

...