代码之家  ›  专栏  ›  技术社区  ›  Robin Ostwald

如果稍后添加元素,则mdl js文本字段不起作用

  •  3
  • Robin Ostwald  · 技术社区  · 10 年前

    当使用MDL(material design lite)时,如果我在页面完全加载后使用JS创建文本字段,我的文本字段将无法工作。

    例如:

    $('.container').append('<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label mdl-layout--padding-bottom-0">' +
            '<input class="mdl-textfield__input" type="text" id="#ssid" name="ssid" required>' + 
            '<label class="mdl-textfield__label" for="ssid">SSID</label>' + 
        '</div>');
    

    将文本字段代码附加到容器后,一切看起来都很好。但单击文本字段不会使标签浮动,文本字段周围的正常发光将显示出来。

    希望你明白我的意思。

    1 回复  |  直到 10 年前
        1
  •  1
  •   Community Mohan Dere    9 年前

    这里有两个问题。

    首先,当您在代码中添加元素时,您需要通过调用upgradeDom来获取MDL库来更新Dom

    componentHandler.upgradeDom(gridHolder);
    

    如果这不起作用,我发现使用javascript生成动态元素确实会更新DOM,而且这一切似乎都有效,而使用JQuery则没有。

    请看 Google MDL - Creating card in jquery shows only text - no background or border 在那里我遇到了一个类似的问题,它包含了生成元素的JavaScript代码。