简体   繁体   English

Google Material Design:mdl菜单对动态载荷不起作用

[英]Google Material Design: mdl-menu does not react on dynamical load

I'd like to insert a button and a mdl-menu as a tooltip in the html page. 我想在html页面中插入一个按钮和一个mdl菜单作为工具提示。

Here is a sample Javascript code: 这是一个示例Javascript代码:

$(function(){
    $("#dynamic").html('<button id="share-post-2" class="mdl-button mdl-button--icon mdl-button--colored">\
      <i class="material-icons">share</i></button>\
   <ul class="mdl-menu mdl-menu--bottom-right mdl-js-menu" for="share-post-2">\
        <li class="mdl-menu__item">Facebook</li>\
        <li class="mdl-menu__item">Twitter</li>\
        <li class="mdl-menu__item">Pinterest</li>\
   </ul>');
}); 

And the html is simple: 而html很简单:

<div id='dynamic'></div>

The problem is that the menu will not show up on button click as expected. 问题是菜单将不会按预期显示在按钮单击上。 However, if I hard code it in html, it works. 但是,如果我用html对其进行硬编码,则可以使用。

The question is how to make the mdl-menu pop up on button click. 问题是如何使单击按钮时弹出MDL菜单。 Thanks! 谢谢!

Here is a jsFiddle I made for test. 这是我测试的jsFiddle

I found this is an issue in Github 我发现这是Github中的问题

The workaround I used to make it work is to use componentHandler.upgradeDom(); 我用来使其工作的解决方法是使用componentHandler.upgradeDom(); to update all the DOM binding and event listeners. 更新所有DOM绑定和事件侦听器。

$(function(){
    $("#dynamic").html('<button id="share-post-2" class="mdl-button mdl-button--icon mdl-button--colored">\
      <i class="material-icons">share</i></button>\
   <ul class="mdl-menu mdl-menu--bottom-right mdl-js-menu" for="share-post-2">\
        <li class="mdl-menu__item">Facebook</li>\
        <li class="mdl-menu__item">Twitter</li>\
        <li class="mdl-menu__item">Pinterest</li>\
   </ul>');
    // Expand all new MDL elements
    componentHandler.upgradeDom();
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM