Javascript 如何在jQuery UI对话框中刷新已更改的按钮?

Javascript 如何在jQuery UI对话框中刷新已更改的按钮?,javascript,jquery,jquery-ui,jquery-ui-dialog,Javascript,Jquery,Jquery Ui,Jquery Ui Dialog,我有一个已初始化的jQuery UI对话框 $('#jqDialog').dialog({ autoOpen: false, modal: true, resizable: false, buttons: { 'Ok': function () { $(this).dialog('close'); } }, }); 然后我想通过编程更改按钮,而不是重新初始化插件实例 $('#jqDialog') .dialog('options', { buttons: {

我有一个已初始化的jQuery UI对话框

$('#jqDialog').dialog({
  autoOpen: false,
  modal: true,
  resizable: false,
  buttons: { 'Ok': function () { $(this).dialog('close'); } },
});
然后我想通过编程更改按钮,而不是重新初始化插件实例

$('#jqDialog')
  .dialog('options',
  { 
    buttons: {
      'Ok': function () {
        $(this).dialog('close');
        store(id);
      },
      'Cancel': function () { $(this).dialog('close'); }
    }
  })
  .dialog('open');

当对话框窗口打开时,它仍然具有原始按钮。使用按钮插件,您必须调用.Button(“刷新”)。对话框插件是否需要调用类似的方法?

您只需要调整一下,方法名称是(no
s
),如下所示:

.dialog('option',

即使在对话框打开的情况下,这也能起作用。

代码中唯一的错误是使用了单词
options
,而不是下面代码中的
option

$("jqDialog").dialog("option", "buttons", 
    { 
        "Ok": function() { 
            $(this).dialog("close"); 
        } 
    });

您可以首先通过调用$dlg.dialog('destory')来销毁该对话框。然后重新评估你想要的对话框。

@ChrisP-我已经做了至少十几次了……绝对不是直观地命名:)这种方法将删除对话框中已经设置的所有其他选项。我的目标是在不同情况下重复使用该对话框。