在jQuery UI对话框中触发按钮单击

时间:2011-09-23 14:54:52

标签: jquery 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')调用,它们会调用按钮的click事件,但是按钮本身不是对话框对象。 我看到了某个地方打电话

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

但我的按钮绝对没有应用功能!

我不知道该怎么做!

3 个答案:

答案 0 :(得分:15)

首先,你需要buttons[0]而不是buttons['OK'],然后,它不是一个函数它是一个对象,试着点击这样的函数:

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

答案 1 :(得分:11)

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

答案 2 :(得分:5)

我使用的是:

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