javascript - MDC 网络组件 : mdc-dialog doesn't close properly sometimes

标签 javascript web material-design material-components material-components-web

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

closeDialog('dialog_gui');

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

最佳答案

每次对话框关闭时,您的函数都会创建 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();

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

关于javascript - MDC 网络组件 : mdc-dialog doesn't close properly sometimes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48462755/

相关文章:

python - 在 CherryPy 中检查每个页面加载时的登录状态

java - Android - Java - 发送 facebook 聊天消息的 Intent (facebook 禁用 xmpp)

android - 如何在Chip Material组件中显示进度drawable动画?

Android FAB 转换为菜单

javascript - 为什么 .hasClass 函数不起作用?

javascript - React - react 脚本 publicPath

javascript - 如何在 Vue.js 中使两个输入相互 react

javascript - HTML 中的样式脚本

带有抽屉导航的Android状态栏透明-Appbar提升

javascript - 如何在不使用 for 循环的情况下使用迭代器对数组值求和