即使我调用componentHandler.upgradeDom(),汉堡包图标也没有显示出来

时间:2015-08-27 16:12:03

标签: material-design-lite

<header class="mdl-layout__header">
    <div class="mdl-layout__header-row">

        <!-- Navigation -->
        <nav class="mdl-navigation">
            <a class="mdl-navigation__link is-active" href="/">link</a>
            <a class="mdl-navigation__link is-active" href="/">link</a>
        </nav>
    </div>
</header>
<div class="mdl-layout__drawer">
    <nav class="mdl-navigation">
        <a class="mdl-navigation__link is-active" href="/">link</a>
        <a class="mdl-navigation__link is-active" href="/">link</a>
    </nav>
</div>

<!-- Colored FAB button with ripple -->
<button class="mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect mdl-button--colored">
    <i class="material-icons">add</i>
</button>

根据http://mdlhut.com/2015/07/where-is-the-mdl-drawer-icon/,只要在动态加载html后调用componentHandler.upgradeDom(),它就应该有效。为了确保我正在调用upgradeDom,我添加了按钮以查看是否添加了涟漪效果。按钮已更新,但汉堡包图标未显示。

如果我在html中插入了汉堡包图标。

1 个答案:

答案 0 :(得分:0)

由于您是动态加载html,因此应在加载DOM后在init函数内运行以下命令。请注意,setInterval函数确保DOM在执行componentHandler方法之前有足够的时间加载

的jQuery

 $(document).ready(function() {
      setInterval(function() {
           componentHandler.upgradeAllRegisteredElements();
      }, 1000);
 });

DOM API

 document.addEventListener('DOMContentLoaded', function() {
      setInterval(function() {
           componentHandler.upgradeAllRegisteredElements();
      }, 1000);
 });