javascript - 禁用 Material Design Lite 切换开关

标签 javascript material-design-lite

我正在尝试使用 JavaScript 在页面上创建一些元素,并用新的 Material Design Lite 来装饰它们。 。这一切都有效,直到我尝试在创建元素后以编程方式开始禁用元素。

我有一些切换开关(由 JavaScript 创建)。当一个开关打开时,我希望其他开关被禁用。

如果我使用:

toggle2.disabled = true;

它工作得很好,但被禁用了,但是当我像这样尝试时:

setInterval(function(){ 

if (toggle1.checked == true) {
    toggle2.disabled = true;
} else {
    toggle2.disabled = false;
}

}, 1000);

toggle2 在视觉上仍然处于事件状态,波纹效果有效,但它不会滑动到“开”,因此它在后台被禁用,只是视觉上不可见。

这是一个JSFiddle例如(使用 HTML 元素,但我的 JS 创建的元素也会发生同样的情况)

另外,这里有一个 video of the problem 。其中,第三个向下由 toggle3.disabled = true; 禁用,第四个向下由 IF 语句根据第二个向下的状态禁用。

我不知道是我做错了什么还是这是 MDL 本身的错误。

谢谢

最佳答案

您需要向上查询该元素,然后对其调用MaterialCheckbox.disable()。就像这样:

document.querySelector('#my-checkbox').MaterialCheckbox.disable()

Disable 是复选框组件(作为小部件实现)提供的一种方法,因此创建的所有额外元素内部所需的内容都可以得到正确处理。

关于javascript - 禁用 Material Design Lite 切换开关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31322380/

相关文章:

html - 如何垂直对齐图像

material-design-lite - MDL 中是否有可用的 tile 组件?

jquery - 通过 JavaScript 检查 MDL 复选框

JavaScript 正则表达式 : how to create a single matching group

javascript - try/catch 中的异步/等待在等待解决后未显示处理逻辑中的错误

javascript - 在没有 jquery 的情况下获取其中包含特定元素的元素作为子元素

javascript - 如何使用 MaterialDesign Lite 正确附加 TextField?

javascript - 如何在 JQuery 中使用 foreach 循环

javascript - 使用 fields 参数查询 FB Graph API 提要?

javascript - 动态创建的 getmdl-select 字段的下拉窗口在单击项目时不会关闭