这是一个非常简单的问题,我没有找到答案。我有一个对话框,在对话框中发生的某些事件中,我想单击其中一个对话框按钮。定义对话框的代码是:
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);
但我的按钮绝对没有应用功能!
我不知道该怎么做!
答案 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"]();