1

我使用 MDC-Web 组件。我正在以编程方式打开和关闭一个对话框,但有时它不会关闭。我不知道我是否以正确的方式关闭对话框。

closeDialog('dialog_gui');

function closeDialog(elementId){
    let dialog = new mdc.dialog.MDCDialog(document.getElementById(elementId));
    dialog.close();
}
4

1 回答 1

1

每次对话框关闭时,您的函数都会创建 MDCDialog 的新实例。您应该将对话框的实例存储在关闭函数之外:

const dialog = new mdc.dialog.MDCDialog(document.getElementById('dialog_gui'));

function closeDialog() {
  // some stuff
  dialog.close();
}

closeDialog();

此外,您可以在没有额外功能的情况下关闭对话框,只需使用 MDCDialog 的close()方法:

const dialog = new mdc.dialog.MDCDialog(document.getElementById('dialog_gui'));

dialog.close();

这是Codepen 示例,其中将打开对话框,然后在 3 秒后关闭。

于 2018-01-27T09:58:33.847 回答