это проблема области действия variable
. В type='module'
переменные автоматически не объявляются глобально, как нормальные script
. Вы должны прикрепить их к объекту window
вручную.
Ниже оба варианта могут решить вашу проблему.
прикрепляется к окну вручную
<script type="module">
window.menu = mdc.menu.MDCMenu.attachTo(document.querySelector('.mdc-menu'));
window.menu.open = false;
window.toggleMenu = function () { window.menu.open = !window.menu.open }
</script>
<a href="#" class="material-icons mdc-top-app-bar__navigation-icon" id="button" onclick="toggleMenu();">menu</a>
Второй вариант: вместо onclick
используйте addEventListener
путем добавления прослушивателя событий
<script type="module">
const menu = mdc.menu.MDCMenu.attachTo(document.querySelector('.mdc-menu'));
menu.open = false;
document.getElementById('toggleButton').addEventListener('click', () => menu.open = !menu.open);
</script>
надежда помогает вам ...