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

3

我有一个已初始化的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插件,您需要调用.button("refresh")。是否存在类似的方法需要使用Dialog插件调用?
3个回答

2
你所需要的只是微调,方法名称为'option'(没有s),如下所示:
.dialog('option',

即使对话框打开,您可以在这里测试,此方法仍然有效。

@ChrisP - 我至少做过这个十几次...绝对不是直观命名的 :) - Nick Craver

0

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


这种方法将删除对话框中已设置的所有其他选项。我的目标是在不同的情况下重复使用对话框。 - ChrisP

0
你代码中唯一的错误是使用了单词options而不是如下所示的option
$("jqDialog").dialog("option", "buttons", 
    { 
        "Ok": function() { 
            $(this).dialog("close"); 
        } 
    });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接