На моей странице есть два выдвижных ящика компонентов дизайна материала с одинаковыми предметами.Один является постоянным для отображения на рабочем столе / планшете, другой - скрытым / модальным для отображения на мобильном телефоне.
<aside class="mdc-drawer mdc-drawer--permanent">
<div class="mdc-drawer__header">
<h3 class="mdc-drawer__title">App</h3>
<h6 class="mdc-drawer__subtitle">@username</h6>
</div>
<div class="mdc-drawer__content">
<nav class="mdc-list--permanent">@menu_drawer_content</nav>
</div>
</aside>
<aside class="mdc-drawer mdc-drawer--modal">
<div class="mdc-drawer__header">
<h3 class="mdc-drawer__title">App</h3>
<h6 class="mdc-drawer__subtitle">@username</h6>
</div>
<div class="mdc-drawer__content">
<nav class="mdc-list">@menu_drawer_content</nav>
</div>
</aside>
Оба инициализированы:
modalDrawer = mdc.drawer.MDCDrawer.attachTo(document.querySelector('.mdc-drawer--modal'));
let list = mdc.list.MDCList.attachTo(document.querySelector('.mdc-list--permanent'));
list.wrapFocus = true;
У меня есть JavaScript, который переключает один поверх другого:
let smallForm = window.matchMedia("(max-width: 767px)").matches;
function resized() {
let smallForm_ = window.matchMedia("(max-width: 767px)").matches;
if (smallForm !== smallForm_) {
smallForm = smallForm_;
changedMedia();
}
}
function changedMedia() {
let drawerButton = $('.mdc-top-app-bar__row > section > button');
if (smallForm) {
$('.mdc-drawer--permanent').hide();
drawerButton.show();
} else {
$('.mdc-drawer--permanent').show();
drawerButton.hide();
modalDrawer.open = false;
}
}
Ошибка, которая остается, заключается в том, что при выборе элемента в одном ящике этот элемент не выбирается в другом.Если я перехожу из одного размера в другой, выбранный элемент не будет соответствовать содержимому.
Могу ли я связать два выдвижных ящика так, чтобы выбор одного из них изменил состояние другого (особенно без запуска событий на другом"ящик или вход в цикл рекурсивного перекрестного уведомления)?
Редактировать: Добавлена награда. Полный источник .