#javascript #html #css #office-ui-fabric
Вопрос:
Я пытаюсь включить переключатель по умолчанию при загрузке веб-страницы. Я использую пользовательский интерфейс Microsoft Fabric.
Когда я попытаюсь добавить is-selected
в <label for="demo-toggle-3" class="ms-Toggle-field" tabindex="0">
него, он будет удален is-selected
при запуске страницы. Тем не менее, я могу добавить его позже в тег, используя инструменты проверки в Chrome.
Вот код, который я использовал:
HTML
<div class="ms-Toggle">
<span class="ms-Toggle-description">Let apps use my location</span>
<input type="checkbox" id="demo-toggle-3" class="ms-Toggle-input" />
<label for="demo-toggle-3" class="ms-Toggle-field is-selected" tabindex="0">
<span class="ms-Label ms-Label--off">Off</span>
<span class="ms-Label ms-Label--on">On</span>
</label>
</div>
язык JavaScript
<script type="text/javascript">
var ToggleElements = document.querySelectorAll(".ms-Toggle");
for (var i = 0; i < ToggleElements.length; i ) {
new fabric['Toggle'](ToggleElements[i]);
}
</script>
Однако, когда страница загружается, она выглядит так:
<div class="ms-Toggle">
<span class="ms-Toggle-description">Let apps use my location</span>
<input type="checkbox" id="demo-toggle-3" class="ms-Toggle-input" />
<label for="demo-toggle-3" class="ms-Toggle-field" tabindex="0">
<span class="ms-Label ms-Label--off">Off</span>
<span class="ms-Label ms-Label--on">On</span>
</label>
</div>
Комментарии:
1. Я мало что знаю о пользовательском интерфейсе Fabric, но я предполагаю, что вызов
new fabric['Toggle']
элемента сбрасывает классы во всем. После этого вы сможете программно добавить класс обратно в (ToggleElements[i].querySelector('.ms-Toggle-field').classList.add('is-selected')
). Но у меня нет возможности это проверить.
Ответ №1:
Благодаря @HereticMonkey я смог решить проблему, добавив is-selected
класс в элемент переключения после его создания. Поскольку у меня есть несколько переключателей, я использовал forloop примерно так:
for (var i = 0; i < ToggleElements.length; i ) {ToggleElements[i].querySelector('.ms-Toggle-field').classList.add('is-selected')}