我为 MDC 滑块(https://material.io/develop/web/components/sliders)创建了一个 DOM 元素。
它看起来不错(除了颜色)。它有效,但我真的不知道如何初始化它。
我从 CDN 导入 MDC。我无法从文档中了解如何进行初始化。这是一个有效的版本:
setTimeout(() => { slider = new mdc.slider.MDCSlider(eltSlider) });
没有setTimeout
它是行不通的。
我尝试过使用 Promise 并稍等片刻。那是行不通的。
甚至可能更糟:如果我在 setTimeout 之后使用 Promise 等待,它就不再起作用了。
发生了什么事,我该怎么做?
我不使用 ts。而且我不使用任何包处理程序。只是普通的 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 已准备好,但它并没有这么说。并且它没有解释在使用 JavaScript 操作 DOM 时如何检查这一点。