Я создал элемент DOM для слайдера MDC (https://material.io/develop/web/components/sliders).
Выглядит красиво (кроме цвета). И это работает, но я действительно понятия не имею, как его инициализировать.
Я импортирую MDC из CDN. Я не могу понять из документации, как выполнить инициализацию. Это одна версия, которая работает:
setTimeout(() => { slider = new mdc.slider.MDCSlider(eltSlider) });
Без setTimeout
не работает.
Вместо этого я попытался использовать обещание и подождите секунду. Это не работает.
И, может быть, даже хуже: если я использую промис для ожидания после setTimeout, он больше не работает.
Что происходит и как мне поступить?
я не пользуюсь тс. И я не использую никаких обработчиков пакетов. Просто JavaScript. (И я был бы рад, если бы документация сначала охватывала этот вариант использования.)
(Кажется, здесь есть только один вопрос о MDCSlider. Он не распространяется на мой вопрос: фактическое использование базового класса и класса адаптера mdc-components)
РЕДАКТИРОВАТЬ: Под импортом из CDN я подразумеваю настройку, упомянутую здесь: https://material.io/develop/web/docs/getting-started
<link href="https://unpkg.com/material-components-web@latest/dist/material-components-web.min.css" rel="stylesheet">
<script src="https://unpkg.com/material-components-web@latest/dist/material-components-web.min.js"></script>
Нет ошибки JavaScript. Просто ползунок на экране не работает. (Выглядит нормально, но не работает.)
Я думаю, что это проблема с MDC и состоянием DOM. Пример по ссылке выше предполагает, что DOM готов, но не говорит об этом. И не объясняет, как это проверить при манипулировании DOM с помощью JavaScript.
document.addEventListener("DOMContentLoaded", (event) => { slider = new mdc.slider.MDCSlider(eltSlider) });
- person canbax   schedule 18.11.2020