【发布时间】:2011-09-23 14:54:51
【问题描述】:
这是一个非常简单的问题,我没有找到答案。我有一个对话框,在对话框内发生的某些事件中,我想单击其中一个对话框按钮。定义对话框的代码是:
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
}
}
});
在我的事件中,我可以获得对话框,找到按钮,但我无法触发单击事件,并通过正确的引用传递。我这样做:
buttons = dialog.dialog('option', 'buttons');
我有每个按钮都有点击功能。如果直接或通过触发器('click')调用,它们会调用按钮的点击事件,但按钮本身不是对话框对象。 我看到了可以打电话的地方
buttons['OK'].apply(dialog);
但我的按钮绝对没有应用功能!
我不知道该怎么办!
【问题讨论】:
-
如果你能得到按钮的引用,它应该像 button.click();或 $(button).click();
-
如问题所述,它没有在函数内部传递正确的引用。
-
我有点晚了,但奇怪的是我按照你的方式做了,“buttons['Ok'].apply(dialog);”它奏效了。我试过“按钮['Ok'].click.apply(dialog);”但它没有用。
-
这里也一样 - "buttons['OK'].apply(dialog)" 对我也有用。
-
根据新的 Jquery UI 文档,您需要从数组中检索一个按钮,其索引类似于按钮[1].click.apply(dialog);