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

moh*_*nag 19 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
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

在我的事件中,我可以得到对话框,找到按钮,但我无法触发点击事件,并且正确的参考传递为此.我这样做:

buttons = dialog.dialog('option', 'buttons');
Run Code Online (Sandbox Code Playgroud)

我有按钮,每个按钮都有点击功能.如果直接调用或通过触发器('click')调用,它们会调用按钮的click事件,但是按钮本身不是对话框对象.我看到了某个地方可以打电话

buttons['OK'].apply(dialog);
Run Code Online (Sandbox Code Playgroud)

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

我不知道我能做什么!

Shl*_*emi 15

首先,你需要得到buttons[0]不是buttons['OK']的话,它不是一个功能,它是一个对象,试图去点击这样的功能:

buttons[0].click.apply(dialog);
Run Code Online (Sandbox Code Playgroud)


azi*_*ani 11

$('.ui-button:contains("Ok")').click()
Run Code Online (Sandbox Code Playgroud)


小智 5

我用的是:

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