Запустить нажатие кнопки внутри диалогового окна JQuery UI

Это очень простой вопрос, что я не нахожу ответа на него. У меня есть диалог, и в некоторых случаях, происходящих внутри диалогового окна, я хочу нажать одну из кнопок диалога. Код, который определяет диалоговое окно:

var dialog = $('<div>').dialog({
    autoOpen: false,
    title : title,
    resizable : false,
    buttons : {
        'CANCEL' : {
            text : messages.Cancel,
            click : function(){$(this).dialog('close')}
        },
        'OK' : {
            text : messages.Ok,
            click : okButtonCallback
        }
    }
});

и в моем случае я могу получить диалог, найти кнопки, но я не могу запустить событие click с правой ссылкой, переданной как это. Я делаю это:

buttons = dialog.dialog('option', 'buttons');

и у меня есть кнопки, каждая из которых имеет функцию щелчка. Если вызывается напрямую или через триггер ('click'), они вызывают событие нажатия кнопки, но с самой кнопкой, так как это не объект диалога. Я видел где-то позвонить

buttons['OK'].apply(dialog);

но мои кнопки абсолютно не применимы!

Я не уверен, что я могу сделать!

Ответы

Ответ 1

Прежде всего, вам нужно получить buttons[0] not buttons['OK'], то это не функция, которую он объект, попробуйте нажать эту функцию следующим образом:

buttons[0].click.apply(dialog);

Ответ 2

$('.ui-button:contains("Ok")').click()

Ответ 3

Что я использую:

// Get the buttons
var buttons = $("#myDialog").dialog("option", "buttons");
// Calls the event
buttons["OK"]();