Веб-компоненты MDC: mdc-dialog иногда не закрывается должным образом

Я использую компоненты MDC-Web. Я программно открываю и закрываю диалоговое окно, но иногда оно не закрывается. Не знаю, правильно ли я делаю, чтобы закрыть диалог.

closeDialog('dialog_gui');

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



Ответы (1)


Ваша функция создает новый экземпляр MDCDialog каждый раз, когда диалог закрывается. Вы должны сохранить экземпляр диалога вне функции закрытия:

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

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

closeDialog();

Кроме того, вы можете закрыть диалог без дополнительных функций, просто используя метод close() MDCDialog:

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

dialog.close();

Вот пример Codepen, где диалоговое окно открывается, а затем закрывается через 3 секунды. секунд.

person Rustem Gareev    schedule 27.01.2018